Check-in [52620b1658]
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: 52620b1658ac7010d396b15c843b25890bb1d600
User & Date: chw 2019-11-07 15:28:51
Context
2019-11-08
09:36
merge with trunk check-in: ffedd90795 user: chw tags: wtf-8-experiment
2019-11-07
15:28
merge with trunk check-in: 52620b1658 user: chw tags: wtf-8-experiment
15:26
update libcurl to version 7.67.0 check-in: 7514898c36 user: chw tags: trunk
06:17
merge with trunk check-in: c1fde526f9 user: chw tags: wtf-8-experiment
Changes

Changes to assets/bwidget1.9.13/spinbox.tcl.

61
62
63
64
65
66
67

68




69
70
71
72
73
74
75
proc SpinBox::create { path args } {
    array set maps [list SpinBox {} :cmd {} .e {} .arrup {} .arrdn {}]
    array set maps [Widget::parseArgs SpinBox $args]
    eval [list frame $path] $maps(:cmd) \
	[list -highlightthickness 0 -takefocus 0 -class SpinBox]
    Widget::initFromODB SpinBox $path $maps(SpinBox)


    set entry [eval [list Entry::create $path.e] $maps(.e) -relief flat -bd 0]




    bindtags $path.e [linsert [bindtags $path.e] 1 SpinBoxEntry]

    set farr   [frame $path.farr -relief flat -bd 0 -highlightthickness 0]
    set height [expr {[winfo reqheight $path.e]/2-2}]
    set width  11
    set arrup  [eval [list ArrowButton::create $path.arrup -dir top] \
	    $maps(.arrup) \







>
|
>
>
>
>







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
proc SpinBox::create { path args } {
    array set maps [list SpinBox {} :cmd {} .e {} .arrup {} .arrdn {}]
    array set maps [Widget::parseArgs SpinBox $args]
    eval [list frame $path] $maps(:cmd) \
	[list -highlightthickness 0 -takefocus 0 -class SpinBox]
    Widget::initFromODB SpinBox $path $maps(SpinBox)

    if {[Widget::theme]} {
        set entry [eval [list Entry::create $path.e] $maps(.e)]
    } else {
        set entry [eval [list Entry::create $path.e] $maps(.e) \
            -relief flat -bd 0]
    }
    bindtags $path.e [linsert [bindtags $path.e] 1 SpinBoxEntry]

    set farr   [frame $path.farr -relief flat -bd 0 -highlightthickness 0]
    set height [expr {[winfo reqheight $path.e]/2-2}]
    set width  11
    set arrup  [eval [list ArrowButton::create $path.arrup -dir top] \
	    $maps(.arrup) \

Changes to assets/bwidget1.9.13/widget.tcl.

494
495
496
497
498
499
500



501
502
503
504
505
506
507
    upvar 0 ${class}::optionExports exports
    upvar 0 ${class}::map classmap
    upvar 0 ${class}::map$subpath submap

    foreach {option realopt} $options {
        if { ![string length $realopt] } {
            set realopt $option



        }
	set val [lindex $classopt($option) 1]
	set optDb ".[lindex [_configure_option $realopt ""] 0]"
	if { ![string equal $subpath ":cmd"] } {
	    set optDb "$subpath$optDb"
	}
	option add *${class}${optDb} $val widgetDefault







>
>
>







494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
    upvar 0 ${class}::optionExports exports
    upvar 0 ${class}::map classmap
    upvar 0 ${class}::map$subpath submap

    foreach {option realopt} $options {
        if { ![string length $realopt] } {
            set realopt $option
        }
        if { ![info exists classopt($option)] } {
            continue
        }
	set val [lindex $classopt($option) 1]
	set optDb ".[lindex [_configure_option $realopt ""] 0]"
	if { ![string equal $subpath ":cmd"] } {
	    set optDb "$subpath$optDb"
	}
	option add *${class}${optDb} $val widgetDefault

Changes to jni/SDL2/src/video/jsmpeg/SDL_jsmpeg_files.h.

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
  0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x09, 0x6d, 0x6f, 0x75,
  0x73, 0x65, 0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65,
  0x20, 0x3d, 0x20, 0x44, 0x61, 0x74, 0x65, 0x2e, 0x6e, 0x6f, 0x77, 0x28,
  0x29, 0x3b, 0x0a, 0x09, 0x09, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
  0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44,
  0x61, 0x74, 0x61, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x29, 0x3b, 0x0a,
  0x09, 0x09, 0x7d, 0x2c, 0x20, 0x64, 0x69, 0x66, 0x66, 0x29, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x09, 0x65, 0x76, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65,
  0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29, 0x3b,
  0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x73, 0x65, 0x6e,
  0x64, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e,
  0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79,
  0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x5b, 0x30, 0x5d, 0x20, 0x3d,
  0x20, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x55, 0x53, 0x45,
  0x5f, 0x57, 0x48, 0x45, 0x45, 0x4c, 0x3b, 0x0a, 0x09, 0x6d, 0x6f, 0x75,
  0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c,
  0x61, 0x67, 0x73, 0x5b, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e,
  0x64, 0x65, 0x6c, 0x74, 0x61, 0x4d, 0x6f, 0x64, 0x65, 0x3b, 0x0a, 0x09,
  0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6f,
  0x72, 0x64, 0x73, 0x5b, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e,
  0x64, 0x65, 0x6c, 0x74, 0x61, 0x58, 0x3b, 0x0a, 0x09, 0x6d, 0x6f, 0x75,
  0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x73,
  0x5b, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x64, 0x65, 0x6c,
  0x74, 0x61, 0x59, 0x3b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
  0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44,
  0x61, 0x74, 0x61, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x29, 0x3b, 0x0a,
  0x09, 0x65, 0x76, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44,
  0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x7d, 0x3b,
  0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x43,
  0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63,
  0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x73, 0x74, 0x6f, 0x70, 0x28,
  0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b,
  0x65, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e,
  0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
  0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65,
  0x6d, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d, 0x20, 0x69, 0x6e, 0x70, 0x75,
  0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75,
  0x72, 0x6e, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x09, 0x65, 0x76, 0x20, 0x3d,
  0x20, 0x65, 0x76, 0x20, 0x7c, 0x7c, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f,
  0x77, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x09, 0x73, 0x65,
  0x6e, 0x64, 0x4b, 0x65, 0x79, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x4b, 0x45,
  0x59, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x2c, 0x20, 0x65, 0x76, 0x2e, 0x6b,
  0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x2c, 0x0a, 0x09, 0x09, 0x65, 0x76,
  0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d,
  0x20, 0x32, 0x20, 0x2f, 0x2a, 0x20, 0x44, 0x4f, 0x4d, 0x5f, 0x4b, 0x45,
  0x59, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52,
  0x49, 0x47, 0x48, 0x54, 0x20, 0x2a, 0x2f, 0x29, 0x3b, 0x0a, 0x7d, 0x3b,
  0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x50, 0x72, 0x65,
  0x73, 0x73, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
  0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20,
  0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61,
  0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
  0x20, 0x3d, 0x3d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29, 0x20,
  0x7b, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x09, 0x65, 0x76, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x20,
  0x7c, 0x7c, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x65, 0x76,
  0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65,
  0x79, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x50, 0x52,
  0x45, 0x53, 0x53, 0x2c, 0x20, 0x65, 0x76, 0x2e, 0x6b, 0x65, 0x79, 0x43,
  0x6f, 0x64, 0x65, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b,
  0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b, 0x65, 0x79,
  0x55, 0x70, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
  0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20,
  0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61,
  0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
  0x20, 0x3d, 0x3d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29, 0x20,
  0x7b, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x09, 0x65, 0x76, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x20,
  0x7c, 0x7c, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x65, 0x76,
  0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65,
  0x79, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x50,
  0x2c, 0x20, 0x65, 0x76, 0x2e, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65,
  0x2c, 0x0a, 0x09, 0x09, 0x65, 0x76, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74,
  0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x2f, 0x2a, 0x20,
  0x44, 0x4f, 0x4d, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x4c, 0x4f, 0x43, 0x41,
  0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x2a,
  0x2f, 0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x4b,
  0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x0a, 0x69, 0x66, 0x20, 0x28,
  0x20, 0x6d, 0x73, 0x4c, 0x69, 0x6b, 0x65, 0x20, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64,
  0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
  0x65, 0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x27,
  0x2c, 0x20, 0x6b, 0x65, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x2c, 0x20, 0x66,
  0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75,
  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b,
  0x65, 0x79, 0x70, 0x72, 0x65, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x6b, 0x65,
  0x79, 0x50, 0x72, 0x65, 0x73, 0x73, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73,
  0x65, 0x29, 0x3b, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
  0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69,
  0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x75,
  0x70, 0x27, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x55, 0x70, 0x2c, 0x20, 0x66,
  0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x20, 0x65, 0x6c, 0x73,
  0x65, 0x20, 0x7b, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e,
  0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74,
  0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77,
  0x6e, 0x27, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x2c,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x09, 0x77, 0x69,
  0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b,
  0x65, 0x79, 0x75, 0x70, 0x27, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x55, 0x70,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x0a,
  0x0a, 0x2f, 0x2f, 0x20, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x0a, 0x63, 0x61,
  0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d,
  0x6f, 0x75, 0x73, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66,
  0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20,
  0x7b, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28,
  0x65, 0x76, 0x2c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x20, 0x7d,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63, 0x61,
  0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d,
  0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x27, 0x2c, 0x20, 0x66,
  0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20,
  0x7b, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28,
  0x65, 0x76, 0x2c, 0x20, 0x65, 0x76, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f,
  0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x3f, 0x20, 0x4d, 0x4f, 0x55,
  0x53, 0x45, 0x5f, 0x32, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x20, 0x3a, 0x20,
  0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x31, 0x5f, 0x44, 0x4f, 0x57, 0x4e,
  0x29, 0x3b, 0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29,
  0x3b, 0x0a, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64,
  0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65,
  0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x75, 0x70, 0x27, 0x2c,
  0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76,
  0x29, 0x20, 0x7b, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73,
  0x65, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x65, 0x76, 0x2e, 0x62, 0x75, 0x74,
  0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x3f, 0x20, 0x4d,
  0x4f, 0x55, 0x53, 0x45, 0x5f, 0x32, 0x5f, 0x55, 0x50, 0x20, 0x3a, 0x20,
  0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x31, 0x5f, 0x55, 0x50, 0x29, 0x3b,
  0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a,
  0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76,
  0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28,
  0x27, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e,
  0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x20,
  0x73, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x28, 0x65, 0x76,
  0x29, 0x3b, 0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29,
  0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x0a,
  0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76,
  0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28,
  0x27, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27,
  0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f,
  0x75, 0x73, 0x65, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x63,
  0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65,
  0x73, 0x5b, 0x30, 0x5d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x58,
  0x3b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x75, 0x73, 0x65,
  0x2e, 0x79, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x6e,
  0x67, 0x65, 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x73, 0x5b, 0x30,
  0x5d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x59, 0x3b, 0x0a, 0x09,
  0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x65, 0x76,
  0x2c, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x31, 0x5f, 0x44, 0x4f,
  0x57, 0x4e, 0x29, 0x3b, 0x0a, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73,
  0x65, 0x29, 0x3b, 0x0a, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61,
  0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65,
  0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x65, 0x6e,
  0x64, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x4d,
  0x6f, 0x75, 0x73, 0x65, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x4d, 0x4f, 0x55,
  0x53, 0x45, 0x5f, 0x31, 0x5f, 0x55, 0x50, 0x29, 0x3b, 0x20, 0x7d, 0x2c,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63, 0x61, 0x6e,
  0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74,
  0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f,
  0x75, 0x63, 0x68, 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75,
  0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b,
  0x20, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x65,
  0x76, 0x2c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x20, 0x7d, 0x2c,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a, 0x2f, 0x2f,
  0x20, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f,
  0x6e, 0x73, 0x20, 0x65, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x67,
  0x20, 0x6b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20, 0x6b, 0x65,
  0x79, 0x73, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e,
  0x65, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e,
  0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28,
  0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x6b, 0x65, 0x79,
  0x43, 0x6f, 0x64, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x65, 0x6c, 0x65,
  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74,
  0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20,
  0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29,
  0x20, 0x7b, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x28, 0x65,
  0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x2c,
  0x20, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x2c, 0x20, 0x66, 0x61,
  0x6c, 0x73, 0x65, 0x29, 0x3b, 0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c,
  0x73, 0x65, 0x29, 0x3b, 0x0a, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
  0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69,
  0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75, 0x63,
  0x68, 0x65, 0x6e, 0x64, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74,
  0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x20, 0x73, 0x65,
  0x6e, 0x64, 0x4b, 0x65, 0x79, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x4b, 0x45,
  0x59, 0x5f, 0x55, 0x50, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64,
  0x65, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x20, 0x7d,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x3b,
  0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x4b,
  0x65, 0x79, 0x73, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
  0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65,
  0x63, 0x74, 0x6f, 0x72, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x2e, 0x6b, 0x65,
  0x79, 0x27, 0x29, 0x3b, 0x0a, 0x66, 0x6f, 0x72, 0x28, 0x20, 0x76, 0x61,
  0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c,
  0x20, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x6c,
  0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x20, 0x69, 0x2b, 0x2b, 0x20, 0x29,
  0x20, 0x7b, 0x0a, 0x09, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x54, 0x6f,
  0x75, 0x63, 0x68, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28, 0x74, 0x6f,
  0x75, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x5b, 0x69, 0x5d, 0x2c, 0x20,
  0x74, 0x6f, 0x75, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x5b, 0x69, 0x5d,
  0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x63, 0x6f, 0x64,
  0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x7a,
  0x6f, 0x6f, 0x6d, 0x46, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x66, 0x75,
  0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b,
  0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x66, 0x75, 0x6c,
  0x6c, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x09,
  0x69, 0x66, 0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
  0x74, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x46, 0x75, 0x6c, 0x6c,
  0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
  0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x64, 0x6f, 0x63, 0x75,
  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x45,
  0x78, 0x69, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65,
  0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x6e, 0x6f, 0x74, 0x66, 0x75,
  0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x09,
  0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20,
  0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6d, 0x6f, 0x7a,
  0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6c,
  0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09,
  0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6d, 0x6f, 0x7a,
  0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63,
  0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x6e, 0x6f,
  0x74, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65,
  0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66,
  0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
  0x6d, 0x73, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e,
  0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6d,
  0x73, 0x45, 0x78, 0x69, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72,
  0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x6e, 0x6f, 0x74,
  0x66, 0x75, 0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b,
  0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20,
  0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x66,
  0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6c, 0x65,
  0x6d, 0x65, 0x6e, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x64,
  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x65, 0x78, 0x69, 0x74,
  0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x28, 0x29,
  0x3b, 0x0a, 0x09, 0x09, 0x6e, 0x6f, 0x74, 0x66, 0x75, 0x6c, 0x6c, 0x20,
  0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x09,
  0x69, 0x66, 0x20, 0x28, 0x20, 0x6e, 0x6f, 0x74, 0x66, 0x75, 0x6c, 0x6c,
  0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x63, 0x61, 0x6e, 0x76, 0x61,
  0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x77, 0x69, 0x64, 0x74,
  0x68, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x0a, 0x09, 0x09,
  0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65,
  0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x75,
  0x6c, 0x6c, 0x3b, 0x0a, 0x09, 0x09, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73,
  0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x62, 0x6f, 0x72, 0x64, 0x65,
  0x72, 0x20, 0x3d, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x73,
  0x61, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3b, 0x0a,
  0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a, 0x09, 0x7d,
  0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x77, 0x20, 0x3d, 0x20, 0x31, 0x2e,
  0x30, 0x20, 0x2a, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x73,
  0x63, 0x72, 0x65, 0x65, 0x6e, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20,
  0x2f, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x73, 0x63, 0x72,
  0x65, 0x65, 0x6e, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a,
  0x09, 0x76, 0x61, 0x72, 0x20, 0x63, 0x20, 0x3d, 0x20, 0x31, 0x2e, 0x30,
  0x20, 0x2a, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x77, 0x69,
  0x64, 0x74, 0x68, 0x20, 0x2f, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73,
  0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x09, 0x69, 0x66,
  0x20, 0x28, 0x77, 0x20, 0x3e, 0x20, 0x63, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x09, 0x73, 0x77, 0x20, 0x3d, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72,
  0x6f, 0x75, 0x6e, 0x64, 0x28, 0x31, 0x30, 0x30, 0x20, 0x2a, 0x20, 0x63,
  0x20, 0x2f, 0x20, 0x77, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x73, 0x77, 0x20,
  0x3d, 0x20, 0x27, 0x27, 0x20, 0x2b, 0x20, 0x73, 0x77, 0x20, 0x2b, 0x20,
  0x27, 0x25, 0x27, 0x3b, 0x0a, 0x09, 0x09, 0x73, 0x68, 0x20, 0x3d, 0x20,
  0x27, 0x31, 0x30, 0x30, 0x25, 0x27, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65,
  0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x73, 0x77, 0x20, 0x3d,
  0x20, 0x27, 0x31, 0x30, 0x30, 0x25, 0x27, 0x3b, 0x0a, 0x09, 0x09, 0x73,
  0x68, 0x20, 0x3d, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72, 0x6f, 0x75,
  0x6e, 0x64, 0x28, 0x31, 0x30, 0x30, 0x20, 0x2a, 0x20, 0x77, 0x20, 0x2f,
  0x20, 0x63, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x73, 0x68, 0x20, 0x3d, 0x20,
  0x27, 0x27, 0x20, 0x2b, 0x20, 0x73, 0x68, 0x20, 0x2b, 0x20, 0x27, 0x25,
  0x27, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x76, 0x61,
  0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x77, 0x69, 0x64, 0x74,
  0x68, 0x20, 0x3d, 0x20, 0x73, 0x77, 0x3b, 0x0a, 0x09, 0x63, 0x61, 0x6e,
  0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x68, 0x65,
  0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x68, 0x3b, 0x0a, 0x09,
  0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65,
  0x2e, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x27, 0x30,
  0x70, 0x78, 0x27, 0x3b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x67,
  0x75, 0x69, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x52, 0x65, 0x71,
  0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65,
  0x65, 0x6e, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x67, 0x75, 0x69,
  0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
  0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e,
  0x28, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x4c, 0x4c,
  0x4f, 0x57, 0x5f, 0x4b, 0x45, 0x59, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x5f,
  0x49, 0x4e, 0x50, 0x55, 0x54, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65,
  0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20, 0x67, 0x75, 0x69,
  0x2e, 0x6d, 0x6f, 0x7a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46,
  0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x29, 0x20,
  0x7b, 0x0a, 0x09, 0x09, 0x67, 0x75, 0x69, 0x2e, 0x6d, 0x6f, 0x7a, 0x52,
  0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63,
  0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65,
  0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20, 0x67, 0x75, 0x69,
  0x2e, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75,
  0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x29, 0x20, 0x7b,
  0x0a, 0x09, 0x09, 0x67, 0x75, 0x69, 0x2e, 0x6d, 0x73, 0x52, 0x65, 0x71,
  0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65,
  0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73,
  0x65, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x67, 0x75, 0x69, 0x2e, 0x72, 0x65,
  0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72,
  0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x7d, 0x3b,
  0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x7a, 0x6f, 0x6f, 0x6d, 0x4b, 0x65,
  0x79, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
  0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
  0x6f, 0x72, 0x28, 0x27, 0x23, 0x6b, 0x65, 0x79, 0x2d, 0x7a, 0x6f, 0x6f,
  0x6d, 0x27, 0x29, 0x3b, 0x0a, 0x7a, 0x6f, 0x6f, 0x6d, 0x4b, 0x65, 0x79,
  0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73,
  0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75, 0x63, 0x68,
  0x73, 0x74, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20, 0x7a, 0x6f, 0x6f, 0x6d,
  0x46, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29,
  0x3b, 0x0a, 0x7a, 0x6f, 0x6f, 0x6d, 0x4b, 0x65, 0x79, 0x2e, 0x61, 0x64,
  0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
  0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f, 0x77,
  0x6e, 0x27, 0x2c, 0x20, 0x7a, 0x6f, 0x6f, 0x6d, 0x46, 0x75, 0x6e, 0x63,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a, 0x76,
  0x61, 0x72, 0x20, 0x6b, 0x62, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x20, 0x3d,
  0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76,
  0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x64, 0x6f,
  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76,
  0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x21, 0x3d, 0x20,
  0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09,
  0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e,
  0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x27, 0x69,
  0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x27, 0x3b, 0x0a, 0x09, 0x09, 0x69, 0x6e,
  0x70, 0x75, 0x74, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x28, 0x29, 0x3b,
  0x0a, 0x09, 0x09, 0x65, 0x76, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e,
  0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29, 0x3b, 0x0a,
  0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x09, 0x09,
  0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e,
  0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x27, 0x6e,
  0x6f, 0x6e, 0x65, 0x27, 0x3b, 0x0a, 0x09, 0x09, 0x77, 0x69, 0x6e, 0x64,
  0x6f, 0x77, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x28, 0x29, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b,
  0x62, 0x64, 0x4b, 0x65, 0x79, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75,
  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65,
  0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x27, 0x23, 0x6b, 0x65, 0x79,
  0x2d, 0x6b, 0x62, 0x64, 0x27, 0x29, 0x3b, 0x0a, 0x6b, 0x62, 0x64, 0x4b,
  0x65, 0x79, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c,
  0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75,
  0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20, 0x6b, 0x62,
  0x64, 0x46, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65,
  0x29, 0x3b, 0x0a, 0x6b, 0x62, 0x64, 0x4b, 0x65, 0x79, 0x2e, 0x61, 0x64,
  0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
  0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f, 0x77,
  0x6e, 0x27, 0x2c, 0x20, 0x6b, 0x62, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x2c,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a, 0x76, 0x61,
  0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c,
  0x65, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
  0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20,
  0x28, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x79, 0x6c,
  0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x21, 0x3d,
  0x20, 0x27, 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x20, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x53, 0x74, 0x72,
  0x69, 0x6e, 0x67, 0x28, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x76, 0x61,
  0x6c, 0x75, 0x65, 0x2c, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x76, 0x61,
  0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0a, 0x09, 0x69,
  0x6e, 0x70, 0x75, 0x74, 0x2e, 0x62, 0x6c, 0x75, 0x72, 0x28, 0x29, 0x3b,
  0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x79, 0x6c,
  0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20,
  0x27, 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x3b, 0x0a, 0x09, 0x77, 0x69, 0x6e,
  0x64, 0x6f, 0x77, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x28, 0x29, 0x3b,
  0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x61,
  0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65,
  0x6e, 0x65, 0x72, 0x28, 0x27, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x27,
  0x2c, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x6c,
  0x65, 0x72, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a,
  0x0a, 0x2f, 0x2f, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x63,
  0x6c, 0x6f, 0x73, 0x65, 0x64, 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77,
  0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73,
  0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x75, 0x6e, 0x6c, 0x6f, 0x61,
  0x64, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65,
  0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x28, 0x29, 0x3b, 0x20, 0x7d, 0x2c,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x29, 0x3b, 0x0a, 0x0a, 0x76,
  0x61, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x20,
  0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x69,
  0x65, 0x6e, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x57, 0x65,
  0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x20, 0x27, 0x77, 0x73,
  0x3a, 0x2f, 0x2f, 0x27, 0x20, 0x2b, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f,
  0x77, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68,
  0x6f, 0x73, 0x74, 0x20, 0x2b, 0x20, 0x27, 0x2f, 0x77, 0x73, 0x27, 0x2c,
  0x20, 0x22, 0x77, 0x73, 0x22, 0x20, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20,
  0x20, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x6e, 0x65,
  0x77, 0x20, 0x6a, 0x73, 0x6d, 0x70, 0x65, 0x67, 0x28, 0x63, 0x6c, 0x69,
  0x65, 0x6e, 0x74, 0x2c, 0x20, 0x7b, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73,
  0x3a, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2c, 0x20, 0x66, 0x6f, 0x72,
  0x63, 0x65, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x32, 0x44, 0x3a, 0x75,
  0x73, 0x65, 0x32, 0x64, 0x7d, 0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a,
  0x2f, 0x2f, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x62,
  0x75, 0x74, 0x74, 0x6f, 0x6e, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x63, 0x6f,
  0x6e, 0x6e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x64,
  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45,
  0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x27,
  0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
  0x63, 0x74, 0x27, 0x29, 0x3b, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x42, 0x75,
  0x74, 0x74, 0x6f, 0x6e, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74,
  0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20,
  0x63, 0x6f, 0x6e, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61,
  0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x42, 0x75,
  0x74, 0x74, 0x6f, 0x6e, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d,
  0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x27, 0x2c, 0x20, 0x63,
  0x6f, 0x6e, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c,
  0x73, 0x65, 0x29, 0x3b, 0x0a















































};

static const unsigned char JSMPEG_file_4[] = {
  0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x10, 0x10, 0x00, 0x00, 0x01, 0x00,
  0x20, 0x00, 0x68, 0x04, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x20, 0x20,
  0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xa8, 0x10, 0x00, 0x00, 0x9e, 0x04,
  0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xa8, 0x25,







|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







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
  0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x09, 0x6d, 0x6f, 0x75,
  0x73, 0x65, 0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65,
  0x20, 0x3d, 0x20, 0x44, 0x61, 0x74, 0x65, 0x2e, 0x6e, 0x6f, 0x77, 0x28,
  0x29, 0x3b, 0x0a, 0x09, 0x09, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
  0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44,
  0x61, 0x74, 0x61, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x29, 0x3b, 0x0a,
  0x09, 0x09, 0x7d, 0x2c, 0x20, 0x64, 0x69, 0x66, 0x66, 0x29, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x09, 0x65, 0x76, 0x2e, 0x73, 0x74, 0x6f, 0x70, 0x50,
  0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29,
  0x3b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x6d, 0x73, 0x4c, 0x69,
  0x6b, 0x65, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x65, 0x76, 0x2e,
  0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65,
  0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x09, 0x7d, 0x0a,
  0x09, 0x65, 0x76, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44,
  0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x7d, 0x3b,
  0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x57, 0x68,
  0x65, 0x65, 0x6c, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
  0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x6d, 0x6f,
  0x75, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x46,
  0x6c, 0x61, 0x67, 0x73, 0x5b, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x49, 0x4e,
  0x50, 0x55, 0x54, 0x5f, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x57, 0x48,
  0x45, 0x45, 0x4c, 0x3b, 0x0a, 0x09, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44,
  0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73,
  0x5b, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x64, 0x65, 0x6c,
  0x74, 0x61, 0x4d, 0x6f, 0x64, 0x65, 0x3b, 0x0a, 0x09, 0x6d, 0x6f, 0x75,
  0x73, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x73,
  0x5b, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x64, 0x65, 0x6c,
  0x74, 0x61, 0x58, 0x3b, 0x0a, 0x09, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44,
  0x61, 0x74, 0x61, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x73, 0x5b, 0x31, 0x5d,
  0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x59,
  0x3b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x65,
  0x6e, 0x64, 0x28, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61,
  0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x29, 0x3b, 0x0a, 0x09, 0x65, 0x76,
  0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61,
  0x75, 0x6c, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76,
  0x61, 0x72, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6c, 0x69, 0x65,
  0x6e, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
  0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x70, 0x6c, 0x61,
  0x79, 0x65, 0x72, 0x2e, 0x73, 0x74, 0x6f, 0x70, 0x28, 0x29, 0x3b, 0x0a,
  0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x44,
  0x6f, 0x77, 0x6e, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
  0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66,
  0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e,
  0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e,
  0x74, 0x20, 0x3d, 0x3d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29,
  0x20, 0x7b, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b,
  0x0a, 0x09, 0x7d, 0x0a, 0x09, 0x65, 0x76, 0x20, 0x3d, 0x20, 0x65, 0x76,
  0x20, 0x7c, 0x7c, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x65,
  0x76, 0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b,
  0x65, 0x79, 0x28, 0x65, 0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x44,
  0x4f, 0x57, 0x4e, 0x2c, 0x20, 0x65, 0x76, 0x2e, 0x6b, 0x65, 0x79, 0x43,
  0x6f, 0x64, 0x65, 0x2c, 0x0a, 0x09, 0x09, 0x65, 0x76, 0x2e, 0x6c, 0x6f,
  0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x20, 0x32, 0x20,
  0x2f, 0x2a, 0x20, 0x44, 0x4f, 0x4d, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x4c,
  0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48,
  0x54, 0x20, 0x2a, 0x2f, 0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76,
  0x61, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x50, 0x72, 0x65, 0x73, 0x73, 0x20,
  0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x64,
  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69,
  0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d,
  0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a, 0x09, 0x7d, 0x0a,
  0x09, 0x65, 0x76, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x20, 0x7c, 0x7c, 0x20,
  0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74,
  0x3b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x28, 0x65,
  0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x53,
  0x2c, 0x20, 0x65, 0x76, 0x2e, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x3b,
  0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x55, 0x70, 0x20,
  0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x64,
  0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69,
  0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x3d, 0x3d,
  0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a, 0x09, 0x7d, 0x0a,
  0x09, 0x65, 0x76, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x20, 0x7c, 0x7c, 0x20,
  0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74,
  0x3b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x28, 0x65,
  0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x55, 0x50, 0x2c, 0x20, 0x65,
  0x76, 0x2e, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x2c, 0x0a, 0x09,
  0x09, 0x65, 0x76, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  0x20, 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x2f, 0x2a, 0x20, 0x44, 0x4f, 0x4d,
  0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f,
  0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x20, 0x2a, 0x2f, 0x29, 0x3b,
  0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x4b, 0x65, 0x79, 0x62,
  0x6f, 0x61, 0x72, 0x64, 0x0a, 0x69, 0x66, 0x20, 0x28, 0x20, 0x6d, 0x73,
  0x4c, 0x69, 0x6b, 0x65, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x64, 0x6f,
  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76,
  0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28,
  0x27, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x27, 0x2c, 0x20, 0x6b,
  0x65, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73,
  0x65, 0x29, 0x3b, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
  0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69,
  0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x70,
  0x72, 0x65, 0x73, 0x73, 0x27, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x50, 0x72,
  0x65, 0x73, 0x73, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b,
  0x0a, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61,
  0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65,
  0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x75, 0x70, 0x27, 0x2c,
  0x20, 0x6b, 0x65, 0x79, 0x55, 0x70, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73,
  0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b,
  0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x61, 0x64, 0x64,
  0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65,
  0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x27, 0x2c,
  0x20, 0x6b, 0x65, 0x79, 0x44, 0x6f, 0x77, 0x6e, 0x2c, 0x20, 0x66, 0x61,
  0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f,
  0x77, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69,
  0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6b, 0x65, 0x79, 0x75,
  0x70, 0x27, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x55, 0x70, 0x2c, 0x20, 0x66,
  0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x2f, 0x2f,
  0x20, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x0a, 0x63, 0x61, 0x6e, 0x76, 0x61,
  0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69,
  0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73,
  0x65, 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63,
  0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x65, 0x76,
  0x2c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x0a, 0x09, 0x72, 0x65,
  0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a,
  0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63,
  0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65,
  0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27,
  0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x27, 0x2c, 0x20,
  0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29,
  0x20, 0x7b, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x62, 0x75, 0x74, 0x74,
  0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x31,
  0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x3b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28,
  0x65, 0x76, 0x2e, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x3d, 0x3d, 0x3d,
  0x20, 0x33, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x62, 0x75, 0x74, 0x74,
  0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x32,
  0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c,
  0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x2e, 0x62, 0x75,
  0x74, 0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x7c,
  0x7c, 0x20, 0x65, 0x76, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20,
  0x3d, 0x3d, 0x3d, 0x20, 0x33, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x62,
  0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x4d, 0x4f, 0x55, 0x53,
  0x45, 0x5f, 0x32, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x3b, 0x0a, 0x09, 0x7d,
  0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28,
  0x65, 0x76, 0x2c, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x29, 0x3b,
  0x0a, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c,
  0x73, 0x65, 0x3b, 0x0a, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65,
  0x29, 0x3b, 0x0a, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64,
  0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
  0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x75, 0x70, 0x27,
  0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x62, 0x75,
  0x74, 0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45,
  0x5f, 0x31, 0x5f, 0x55, 0x50, 0x3b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28,
  0x65, 0x76, 0x2e, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, 0x3d, 0x3d, 0x3d,
  0x20, 0x33, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x62, 0x75, 0x74, 0x74,
  0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x32,
  0x5f, 0x55, 0x50, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65,
  0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x2e, 0x62, 0x75, 0x74, 0x74,
  0x6f, 0x6e, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x32, 0x20, 0x7c, 0x7c, 0x20,
  0x65, 0x76, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x3d,
  0x3d, 0x20, 0x33, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x62, 0x75, 0x74,
  0x74, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f,
  0x32, 0x5f, 0x55, 0x50, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x09, 0x73, 0x65,
  0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x65, 0x76, 0x2c, 0x20,
  0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x29, 0x3b, 0x0a, 0x09, 0x72, 0x65,
  0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a,
  0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63,
  0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65,
  0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27,
  0x77, 0x68, 0x65, 0x65, 0x6c, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63,
  0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x73, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x28, 0x65, 0x76,
  0x29, 0x3b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66,
  0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c,
  0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x54, 0x6f, 0x75,
  0x63, 0x68, 0x0a, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64,
  0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e,
  0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61,
  0x72, 0x74, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
  0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x6c, 0x61, 0x73,
  0x74, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x2e, 0x78, 0x20, 0x3d, 0x20, 0x65,
  0x76, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x6f, 0x75,
  0x63, 0x68, 0x65, 0x73, 0x5b, 0x30, 0x5d, 0x2e, 0x63, 0x6c, 0x69, 0x65,
  0x6e, 0x74, 0x58, 0x3b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f,
  0x75, 0x73, 0x65, 0x2e, 0x79, 0x20, 0x3d, 0x20, 0x65, 0x76, 0x2e, 0x63,
  0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x65,
  0x73, 0x5b, 0x30, 0x5d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x59,
  0x3b, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65,
  0x28, 0x65, 0x76, 0x2c, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x31,
  0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x29, 0x3b, 0x0a, 0x09, 0x72, 0x65, 0x74,
  0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x7d,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63, 0x61,
  0x6e, 0x76, 0x61, 0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74,
  0x6f, 0x75, 0x63, 0x68, 0x65, 0x6e, 0x64, 0x27, 0x2c, 0x20, 0x66, 0x75,
  0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b,
  0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28,
  0x65, 0x76, 0x2c, 0x20, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x5f, 0x31, 0x5f,
  0x55, 0x50, 0x29, 0x3b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x7d, 0x2c, 0x20, 0x66,
  0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x63, 0x61, 0x6e, 0x76, 0x61,
  0x73, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69,
  0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75, 0x63,
  0x68, 0x6d, 0x6f, 0x76, 0x65, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63,
  0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x73, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x75, 0x73, 0x65, 0x28, 0x65, 0x76,
  0x2c, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x29, 0x3b, 0x0a, 0x09, 0x72, 0x65,
  0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a,
  0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a,
  0x2f, 0x2f, 0x20, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x20, 0x62, 0x75, 0x74,
  0x74, 0x6f, 0x6e, 0x73, 0x20, 0x65, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69,
  0x6e, 0x67, 0x20, 0x6b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x20,
  0x6b, 0x65, 0x79, 0x73, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x64, 0x65, 0x66,
  0x69, 0x6e, 0x65, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x42, 0x75, 0x74, 0x74,
  0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f,
  0x6e, 0x28, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x6b,
  0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x65,
  0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76,
  0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28,
  0x27, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27,
  0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79,
  0x28, 0x65, 0x76, 0x2c, 0x20, 0x4b, 0x45, 0x59, 0x5f, 0x44, 0x4f, 0x57,
  0x4e, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x2c, 0x20,
  0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x20, 0x7d, 0x2c, 0x20, 0x66,
  0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x09, 0x65, 0x6c, 0x65, 0x6d,
  0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74,
  0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f,
  0x75, 0x63, 0x68, 0x65, 0x6e, 0x64, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e,
  0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x20,
  0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x28, 0x65, 0x76, 0x2c, 0x20,
  0x4b, 0x45, 0x59, 0x5f, 0x55, 0x50, 0x2c, 0x20, 0x6b, 0x65, 0x79, 0x43,
  0x6f, 0x64, 0x65, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b,
  0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a,
  0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x74, 0x6f, 0x75, 0x63,
  0x68, 0x4b, 0x65, 0x79, 0x73, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75,
  0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65,
  0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x2e,
  0x6b, 0x65, 0x79, 0x27, 0x29, 0x3b, 0x0a, 0x66, 0x6f, 0x72, 0x28, 0x20,
  0x76, 0x61, 0x72, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69,
  0x20, 0x3c, 0x20, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73,
  0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x20, 0x69, 0x2b, 0x2b,
  0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65,
  0x54, 0x6f, 0x75, 0x63, 0x68, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28,
  0x74, 0x6f, 0x75, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x5b, 0x69, 0x5d,
  0x2c, 0x20, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x5b,
  0x69, 0x5d, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x2e, 0x63,
  0x6f, 0x64, 0x65, 0x29, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x76, 0x61, 0x72,
  0x20, 0x7a, 0x6f, 0x6f, 0x6d, 0x46, 0x75, 0x6e, 0x63, 0x20, 0x3d, 0x20,
  0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29,
  0x20, 0x7b, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x66,
  0x75, 0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b,
  0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d,
  0x65, 0x6e, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x46, 0x75,
  0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45, 0x6c, 0x65, 0x6d,
  0x65, 0x6e, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x64, 0x6f,
  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69,
  0x74, 0x45, 0x78, 0x69, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72,
  0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x6e, 0x6f, 0x74,
  0x66, 0x75, 0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b,
  0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20,
  0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6d,
  0x6f, 0x7a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e,
  0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x6d,
  0x6f, 0x7a, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x46, 0x75, 0x6c, 0x6c,
  0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09,
  0x6e, 0x6f, 0x74, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72,
  0x75, 0x65, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20,
  0x69, 0x66, 0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
  0x74, 0x2e, 0x6d, 0x73, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65,
  0x65, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x29, 0x20,
  0x7b, 0x0a, 0x09, 0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
  0x2e, 0x6d, 0x73, 0x45, 0x78, 0x69, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73,
  0x63, 0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x6e,
  0x6f, 0x74, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75,
  0x65, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69,
  0x66, 0x20, 0x28, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
  0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x45,
  0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09,
  0x09, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x65, 0x78,
  0x69, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e,
  0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x6e, 0x6f, 0x74, 0x66, 0x75, 0x6c,
  0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x09, 0x7d,
  0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20, 0x6e, 0x6f, 0x74, 0x66, 0x75,
  0x6c, 0x6c, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x63, 0x61, 0x6e,
  0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x77, 0x69,
  0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x0a,
  0x09, 0x09, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79,
  0x6c, 0x65, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, 0x20,
  0x6e, 0x75, 0x6c, 0x6c, 0x3b, 0x0a, 0x09, 0x09, 0x63, 0x61, 0x6e, 0x76,
  0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x62, 0x6f, 0x72,
  0x64, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73,
  0x2e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x42, 0x6f, 0x72, 0x64, 0x65, 0x72,
  0x3b, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0x0a,
  0x09, 0x7d, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x77, 0x20, 0x3d, 0x20,
  0x31, 0x2e, 0x30, 0x20, 0x2a, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77,
  0x2e, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x2e, 0x77, 0x69, 0x64, 0x74,
  0x68, 0x20, 0x2f, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x73,
  0x63, 0x72, 0x65, 0x65, 0x6e, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
  0x3b, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x20, 0x63, 0x20, 0x3d, 0x20, 0x31,
  0x2e, 0x30, 0x20, 0x2a, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e,
  0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x2f, 0x20, 0x63, 0x61, 0x6e, 0x76,
  0x61, 0x73, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x09,
  0x69, 0x66, 0x20, 0x28, 0x77, 0x20, 0x3e, 0x20, 0x63, 0x29, 0x20, 0x7b,
  0x0a, 0x09, 0x09, 0x73, 0x77, 0x20, 0x3d, 0x20, 0x4d, 0x61, 0x74, 0x68,
  0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x28, 0x31, 0x30, 0x30, 0x20, 0x2a,
  0x20, 0x63, 0x20, 0x2f, 0x20, 0x77, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x73,
  0x77, 0x20, 0x3d, 0x20, 0x27, 0x27, 0x20, 0x2b, 0x20, 0x73, 0x77, 0x20,
  0x2b, 0x20, 0x27, 0x25, 0x27, 0x3b, 0x0a, 0x09, 0x09, 0x73, 0x68, 0x20,
  0x3d, 0x20, 0x27, 0x31, 0x30, 0x30, 0x25, 0x27, 0x3b, 0x0a, 0x09, 0x7d,
  0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x73, 0x77,
  0x20, 0x3d, 0x20, 0x27, 0x31, 0x30, 0x30, 0x25, 0x27, 0x3b, 0x0a, 0x09,
  0x09, 0x73, 0x68, 0x20, 0x3d, 0x20, 0x4d, 0x61, 0x74, 0x68, 0x2e, 0x72,
  0x6f, 0x75, 0x6e, 0x64, 0x28, 0x31, 0x30, 0x30, 0x20, 0x2a, 0x20, 0x77,
  0x20, 0x2f, 0x20, 0x63, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x73, 0x68, 0x20,
  0x3d, 0x20, 0x27, 0x27, 0x20, 0x2b, 0x20, 0x73, 0x68, 0x20, 0x2b, 0x20,
  0x27, 0x25, 0x27, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x09, 0x63, 0x61, 0x6e,
  0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x77, 0x69,
  0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x73, 0x77, 0x3b, 0x0a, 0x09, 0x63,
  0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e,
  0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x68, 0x3b,
  0x0a, 0x09, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x2e, 0x73, 0x74, 0x79,
  0x6c, 0x65, 0x2e, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x20, 0x3d, 0x20,
  0x27, 0x30, 0x70, 0x78, 0x27, 0x3b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28,
  0x20, 0x67, 0x75, 0x69, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x52,
  0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63,
  0x72, 0x65, 0x65, 0x6e, 0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x67,
  0x75, 0x69, 0x2e, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x52, 0x65, 0x71,
  0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65,
  0x65, 0x6e, 0x28, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41,
  0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x4b, 0x45, 0x59, 0x42, 0x4f, 0x41, 0x52,
  0x44, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x29, 0x3b, 0x0a, 0x09, 0x7d,
  0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20, 0x67,
  0x75, 0x69, 0x2e, 0x6d, 0x6f, 0x7a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
  0x74, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20,
  0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x67, 0x75, 0x69, 0x2e, 0x6d, 0x6f,
  0x7a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c,
  0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d,
  0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x20, 0x67,
  0x75, 0x69, 0x2e, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
  0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x29,
  0x20, 0x7b, 0x0a, 0x09, 0x09, 0x67, 0x75, 0x69, 0x2e, 0x6d, 0x73, 0x52,
  0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73, 0x63,
  0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65,
  0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x67, 0x75, 0x69, 0x2e,
  0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x75, 0x6c, 0x6c, 0x73,
  0x63, 0x72, 0x65, 0x65, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x09, 0x7d, 0x0a,
  0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72, 0x20, 0x7a, 0x6f, 0x6f, 0x6d,
  0x4b, 0x65, 0x79, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
  0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65,
  0x63, 0x74, 0x6f, 0x72, 0x28, 0x27, 0x23, 0x6b, 0x65, 0x79, 0x2d, 0x7a,
  0x6f, 0x6f, 0x6d, 0x27, 0x29, 0x3b, 0x0a, 0x7a, 0x6f, 0x6f, 0x6d, 0x4b,
  0x65, 0x79, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c,
  0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75,
  0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20, 0x7a, 0x6f,
  0x6f, 0x6d, 0x46, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73,
  0x65, 0x29, 0x3b, 0x0a, 0x7a, 0x6f, 0x6f, 0x6d, 0x4b, 0x65, 0x79, 0x2e,
  0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74,
  0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64,
  0x6f, 0x77, 0x6e, 0x27, 0x2c, 0x20, 0x7a, 0x6f, 0x6f, 0x6d, 0x46, 0x75,
  0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a,
  0x0a, 0x76, 0x61, 0x72, 0x20, 0x6b, 0x62, 0x64, 0x46, 0x75, 0x6e, 0x63,
  0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28,
  0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69, 0x66, 0x20, 0x28, 0x20,
  0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74,
  0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x21,
  0x3d, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x29, 0x20, 0x7b, 0x0a,
  0x09, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x79, 0x6c,
  0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20,
  0x27, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x27, 0x3b, 0x0a, 0x09, 0x09,
  0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x28,
  0x29, 0x3b, 0x0a, 0x09, 0x09, 0x65, 0x76, 0x2e, 0x70, 0x72, 0x65, 0x76,
  0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29,
  0x3b, 0x0a, 0x09, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a,
  0x09, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74, 0x79, 0x6c,
  0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20,
  0x27, 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x3b, 0x0a, 0x09, 0x09, 0x77, 0x69,
  0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x28, 0x29,
  0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x76, 0x61, 0x72,
  0x20, 0x6b, 0x62, 0x64, 0x4b, 0x65, 0x79, 0x20, 0x3d, 0x20, 0x64, 0x6f,
  0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79,
  0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x28, 0x27, 0x23, 0x6b,
  0x65, 0x79, 0x2d, 0x6b, 0x62, 0x64, 0x27, 0x29, 0x3b, 0x0a, 0x6b, 0x62,
  0x64, 0x4b, 0x65, 0x79, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e,
  0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x74,
  0x6f, 0x75, 0x63, 0x68, 0x73, 0x74, 0x61, 0x72, 0x74, 0x27, 0x2c, 0x20,
  0x6b, 0x62, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c,
  0x73, 0x65, 0x29, 0x3b, 0x0a, 0x6b, 0x62, 0x64, 0x4b, 0x65, 0x79, 0x2e,
  0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74,
  0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64,
  0x6f, 0x77, 0x6e, 0x27, 0x2c, 0x20, 0x6b, 0x62, 0x64, 0x46, 0x75, 0x6e,
  0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a,
  0x76, 0x61, 0x72, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x61, 0x6e,
  0x64, 0x6c, 0x65, 0x72, 0x20, 0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74,
  0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69,
  0x66, 0x20, 0x28, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74,
  0x79, 0x6c, 0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20,
  0x21, 0x3d, 0x20, 0x27, 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x20, 0x29, 0x20,
  0x7b, 0x0a, 0x09, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x53,
  0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e,
  0x76, 0x61, 0x6c, 0x75, 0x65, 0x2c, 0x20, 0x74, 0x72, 0x75, 0x65, 0x29,
  0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e,
  0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0a,
  0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x62, 0x6c, 0x75, 0x72, 0x28,
  0x29, 0x3b, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2e, 0x73, 0x74,
  0x79, 0x6c, 0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20,
  0x3d, 0x20, 0x27, 0x6e, 0x6f, 0x6e, 0x65, 0x27, 0x3b, 0x0a, 0x09, 0x77,
  0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x28,
  0x29, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74,
  0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73,
  0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x63, 0x68, 0x61, 0x6e, 0x67,
  0x65, 0x27, 0x2c, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x48, 0x61, 0x6e,
  0x64, 0x6c, 0x65, 0x72, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29,
  0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77,
  0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x0a, 0x77, 0x69, 0x6e, 0x64,
  0x6f, 0x77, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c,
  0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x75, 0x6e, 0x6c,
  0x6f, 0x61, 0x64, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69,
  0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x20, 0x63, 0x6c, 0x6f,
  0x73, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x28, 0x29, 0x3b, 0x20,
  0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x29, 0x3b, 0x0a,
  0x2f, 0x2f, 0x20, 0x43, 0x61, 0x74, 0x63, 0x68, 0x20, 0x72, 0x69, 0x67,
  0x68, 0x74, 0x20, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x20, 0x62, 0x75, 0x74,
  0x74, 0x6f, 0x6e, 0x0a, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x61,
  0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65,
  0x6e, 0x65, 0x72, 0x28, 0x27, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
  0x6d, 0x65, 0x6e, 0x75, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74,
  0x69, 0x6f, 0x6e, 0x28, 0x65, 0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x69,
  0x66, 0x20, 0x28, 0x20, 0x65, 0x76, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65,
  0x74, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73,
  0x20, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x09, 0x65, 0x76, 0x2e, 0x70, 0x72,
  0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
  0x28, 0x29, 0x3b, 0x0a, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e,
  0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x09, 0x7d, 0x0a, 0x7d,
  0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a, 0x0a, 0x76,
  0x61, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x46, 0x75, 0x6e, 0x63, 0x20,
  0x3d, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x65,
  0x76, 0x29, 0x20, 0x7b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
  0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x57, 0x65, 0x62, 0x53, 0x6f,
  0x63, 0x6b, 0x65, 0x74, 0x28, 0x20, 0x27, 0x77, 0x73, 0x3a, 0x2f, 0x2f,
  0x27, 0x20, 0x2b, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6c,
  0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68, 0x6f, 0x73, 0x74,
  0x20, 0x2b, 0x20, 0x27, 0x2f, 0x77, 0x73, 0x27, 0x2c, 0x20, 0x22, 0x77,
  0x73, 0x22, 0x20, 0x29, 0x3b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x79, 0x65,
  0x72, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x6a, 0x73, 0x6d, 0x70,
  0x65, 0x67, 0x28, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x7b,
  0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x3a, 0x63, 0x61, 0x6e, 0x76, 0x61,
  0x73, 0x2c, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x43, 0x61, 0x6e, 0x76,
  0x61, 0x73, 0x32, 0x44, 0x3a, 0x75, 0x73, 0x65, 0x32, 0x64, 0x7d, 0x29,
  0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x0a, 0x2f, 0x2f, 0x20, 0x43, 0x6f, 0x6e,
  0x6e, 0x65, 0x63, 0x74, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x0a,
  0x76, 0x61, 0x72, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x42, 0x75, 0x74, 0x74,
  0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
  0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74,
  0x42, 0x79, 0x49, 0x64, 0x28, 0x27, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
  0x2d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x27, 0x29, 0x3b, 0x0a,
  0x63, 0x6f, 0x6e, 0x6e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x2e, 0x61,
  0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65,
  0x6e, 0x65, 0x72, 0x28, 0x27, 0x74, 0x6f, 0x75, 0x63, 0x68, 0x73, 0x74,
  0x61, 0x72, 0x74, 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x46, 0x75,
  0x6e, 0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a,
  0x63, 0x6f, 0x6e, 0x6e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x2e, 0x61,
  0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65,
  0x6e, 0x65, 0x72, 0x28, 0x27, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x64, 0x6f,
  0x77, 0x6e, 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x46, 0x75, 0x6e,
  0x63, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x0a
};

static const unsigned char JSMPEG_file_4[] = {
  0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x10, 0x10, 0x00, 0x00, 0x01, 0x00,
  0x20, 0x00, 0x68, 0x04, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x20, 0x20,
  0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xa8, 0x10, 0x00, 0x00, 0x9e, 0x04,
  0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xa8, 0x25,

Changes to jni/SDL2/src/video/jsmpeg/data/jsmpg-vnc.js.

242
243
244
245
246
247
248




249
250
251
252
253
254
255
...
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
...
399
400
401
402
403
404
405





406


407
408
409
410
411
412
413
414
415
		client.send(mouseDataBuffer);
	} else {
		mouseTimer = setTimeout(function() {
			mouseMotionTime = Date.now();
			client.send(mouseDataBuffer);
		}, diff);
	}




	ev.preventDefault();
};

var sendWheel = function(ev) {
	mouseDataTypeFlags[0] = INPUT_MOUSE_WHEEL;
	mouseDataTypeFlags[1] = ev.deltaMode;
	mouseDataCoords[0] = ev.deltaX;
................................................................................
	document.addEventListener('keyup', keyUp, false);
} else {
	window.addEventListener('keydown', keyDown, false);
	window.addEventListener('keyup', keyUp, false);
}

// Mouse
canvas.addEventListener('mousemove', function(ev) { sendMouse(ev, null); }, false);



canvas.addEventListener('mousedown', function(ev) { sendMouse(ev, ev.button == 2 ? MOUSE_2_DOWN : MOUSE_1_DOWN); }, false);









canvas.addEventListener('mouseup', function(ev) { sendMouse(ev, ev.button == 2 ? MOUSE_2_UP : MOUSE_1_UP); }, false);









canvas.addEventListener('wheel', function(ev) { sendWheel(ev); }, false);




// Touch
canvas.addEventListener('touchstart', function(ev) {
	lastMouse.x = ev.changedTouches[0].clientX;
	lastMouse.y = ev.changedTouches[0].clientY;
	sendMouse(ev, MOUSE_1_DOWN);

}, false);
canvas.addEventListener('touchend', function(ev) { sendMouse(ev, MOUSE_1_UP); }, false);



canvas.addEventListener('touchmove', function(ev) { sendMouse(ev, null); }, false);




// Touch buttons emulating keyboard keys
var defineTouchButton = function(element, keyCode) {
	element.addEventListener('touchstart', function(ev) { sendKey(ev, KEY_DOWN, keyCode, false); }, false);
	element.addEventListener('touchend', function(ev) { sendKey(ev, KEY_UP, keyCode, false); }, false);
};

................................................................................
	window.focus();
};

input.addEventListener('change', inputHandler, false);

// Window closed
window.addEventListener('unload', function(ev) { closeClient(); }, false );








var connFunc = function(ev) {
    client = new WebSocket( 'ws://' + window.location.host + '/ws', "ws" );
    player = new jsmpeg(client, {canvas:canvas, forceCanvas2D:use2d});
};

// Connect button
var connButton = document.getElementById('button-connect');
connButton.addEventListener('touchstart', connFunc, false);
connButton.addEventListener('mousedown', connFunc, false);







>
>
>
>







 







|
>
>
>
|
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
|
>
>
>






>

|
>
>
>
|
>
>
>







 







>
>
>
>
>
|
>
>

|
|






242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
...
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
...
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
		client.send(mouseDataBuffer);
	} else {
		mouseTimer = setTimeout(function() {
			mouseMotionTime = Date.now();
			client.send(mouseDataBuffer);
		}, diff);
	}
	ev.stopPropagation();
	if ( msLike ) {
		ev.cancelBubble = true;
	}
	ev.preventDefault();
};

var sendWheel = function(ev) {
	mouseDataTypeFlags[0] = INPUT_MOUSE_WHEEL;
	mouseDataTypeFlags[1] = ev.deltaMode;
	mouseDataCoords[0] = ev.deltaX;
................................................................................
	document.addEventListener('keyup', keyUp, false);
} else {
	window.addEventListener('keydown', keyDown, false);
	window.addEventListener('keyup', keyUp, false);
}

// Mouse
canvas.addEventListener('mousemove', function(ev) {
	sendMouse(ev, null);
	return false;
}, false);
canvas.addEventListener('mousedown', function(ev) {
	var button = MOUSE_1_DOWN;
	if (ev.which === 3) {
		button = MOUSE_2_DOWN;
	} else if (ev.button === 2 || ev.button === 3) {
		button = MOUSE_2_DOWN;
	}
	sendMouse(ev, button);
	return false;
}, false);
canvas.addEventListener('mouseup', function(ev) {
	var button = MOUSE_1_UP;
	if (ev.which === 3) {
		button = MOUSE_2_UP;
	} else if (ev.button === 2 || ev.button === 3) {
		button = MOUSE_2_UP;
	}
	sendMouse(ev, button);
	return false;
}, false);
canvas.addEventListener('wheel', function(ev) {
	sendWheel(ev);
	return false;
}, false);

// Touch
canvas.addEventListener('touchstart', function(ev) {
	lastMouse.x = ev.changedTouches[0].clientX;
	lastMouse.y = ev.changedTouches[0].clientY;
	sendMouse(ev, MOUSE_1_DOWN);
	return false;
}, false);
canvas.addEventListener('touchend', function(ev) {
	sendMouse(ev, MOUSE_1_UP);
	return false;
}, false);
canvas.addEventListener('touchmove', function(ev) {
	sendMouse(ev, null);
	return false;
}, false);

// Touch buttons emulating keyboard keys
var defineTouchButton = function(element, keyCode) {
	element.addEventListener('touchstart', function(ev) { sendKey(ev, KEY_DOWN, keyCode, false); }, false);
	element.addEventListener('touchend', function(ev) { sendKey(ev, KEY_UP, keyCode, false); }, false);
};

................................................................................
	window.focus();
};

input.addEventListener('change', inputHandler, false);

// Window closed
window.addEventListener('unload', function(ev) { closeClient(); }, false );
// Catch right mouse button
window.addEventListener('contextmenu', function(ev) {
	if ( ev.target === canvas ) {
		ev.preventDefault();
		return false;
	}
}, false);

var connFunc = function(ev) {
	client = new WebSocket( 'ws://' + window.location.host + '/ws', "ws" );
	player = new jsmpeg(client, {canvas:canvas, forceCanvas2D:use2d});
};

// Connect button
var connButton = document.getElementById('button-connect');
connButton.addEventListener('touchstart', connFunc, false);
connButton.addEventListener('mousedown', connFunc, false);

Changes to jni/curl/CHANGES.

2
3
4
5
6
7
8



























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































9
10
11
12
13
14
15
....
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
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
                              ___| | | |  _ \| |
                             / __| | | | |_) | |
                            | (__| |_| |  _ <| |___
                             \___|\___/|_| \_\_____|

                                  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

................................................................................
  
  The problem can be reproduced as follows:
  
   % curl --reso<TAB>
   % curl -E <TAB>
  
  Bug: https://bugs.debian.org/921452

- zsh.pl: update regex to better match curl -h output
  
  The current regex fails to match '<...>' arguments properly (e.g. those
  with spaces in them), which causes an completion script with wrong
  descriptions for some options.
  
  Here's a diff of the generated completion script, comparing the previous
  version to the one with this fix:
  
  --- /usr/share/zsh/vendor-completions/_curl     2019-01-15 20:47:40.000000000 +0000
  +++ _curl       2019-02-05 20:57:29.453349040 +0000
  @@ -9,48 +9,48 @@
  
   _arguments -C -S \
     --happy-eyeballs-timeout-ms'[How long to wait in milliseconds for IPv6 before trying IPv4]':'<milliseconds>' \
  +  --resolve'[Resolve the host+port to this address]':'<host:port:address[,address]...>' \
     {-c,--cookie-jar}'[Write cookies to <filename> after operation]':'<filename>':_files \
     {-D,--dump-header}'[Write the received headers to <filename>]':'<filename>':_files \
     {-y,--speed-time}'[Trigger '\''speed-limit'\'' abort after this time]':'<seconds>' \
     --proxy-cacert'[CA certificate to verify peer against for proxy]':'<file>':_files \
  -  --tls13-ciphers'[of TLS 1.3 ciphersuites> TLS 1.3 cipher suites to use]':'<list' \
  +  --tls13-ciphers'[TLS 1.3 cipher suites to use]':'<list of TLS 1.3 ciphersuites>' \
     {-E,--cert}'[Client certificate file and password]':'<certificate[:password]>' \
     --libcurl'[Dump libcurl equivalent code of this command line]':'<file>':_files \
     --proxy-capath'[CA directory to verify peer against for proxy]':'<dir>':_files \
  -  --proxy-negotiate'[HTTP Negotiate (SPNEGO) authentication on the proxy]':'Use' \
     --proxy-pinnedpubkey'[FILE/HASHES public key to verify proxy with]':'<hashes>' \
     --crlfile'[Get a CRL list in PEM format from the given file]':'<file>':_files \
  -  --proxy-insecure'[HTTPS proxy connections without verifying the proxy]':'Do' \
  -  --proxy-ssl-allow-beast'[security flaw for interop for HTTPS proxy]':'Allow' \
  +  --proxy-negotiate'[Use HTTP Negotiate (SPNEGO) authentication on the proxy]' \
     --abstract-unix-socket'[Connect via abstract Unix domain socket]':'<path>' \
     --pinnedpubkey'[FILE/HASHES Public key to verify peer against]':'<hashes>' \
  +  --proxy-insecure'[Do HTTPS proxy connections without verifying the proxy]' \
     --proxy-pass'[Pass phrase for the private key for HTTPS proxy]':'<phrase>' \
  +  --proxy-ssl-allow-beast'[Allow security flaw for interop for HTTPS proxy]' \
     {-p,--proxytunnel}'[Operate through an HTTP proxy tunnel (using CONNECT)]' \
     --socks5-hostname'[SOCKS5 proxy, pass host name to proxy]':'<host[:port]>' \
     --proto-default'[Use PROTOCOL for any URL missing a scheme]':'<protocol>' \
  -  --proxy-tls13-ciphers'[list> TLS 1.3 proxy cipher suites]':'<ciphersuite' \
  +  --proxy-tls13-ciphers'[TLS 1.3 proxy cipher suites]':'<ciphersuite list>' \
     --socks5-gssapi-service'[SOCKS5 proxy service name for GSS-API]':'<name>' \
     --ftp-alternative-to-user'[String to replace USER \[name\]]':'<command>' \
  -  --ftp-ssl-control'[SSL/TLS for FTP login, clear for transfer]':'Require' \
     {-T,--upload-file}'[Transfer local FILE to destination]':'<file>':_files \
     --local-port'[Force use of RANGE for local port numbers]':'<num/range>' \
     --proxy-tlsauthtype'[TLS authentication type for HTTPS proxy]':'<type>' \
     {-R,--remote-time}'[Set the remote file'\''s time on the local output]' \
  -  --retry-connrefused'[on connection refused (use with --retry)]':'Retry' \
  -  --suppress-connect-headers'[proxy CONNECT response headers]':'Suppress' \
  -  {-j,--junk-session-cookies}'[session cookies read from file]':'Ignore' \
  -  --location-trusted'[--location, and send auth to other hosts]':'Like' \
  +  --ftp-ssl-control'[Require SSL/TLS for FTP login, clear for transfer]' \
     --proxy-cert-type'[Client certificate type for HTTPS proxy]':'<type>' \
     {-O,--remote-name}'[Write output to a file named as the remote file]' \
  +  --retry-connrefused'[Retry on connection refused (use with --retry)]' \
  +  --suppress-connect-headers'[Suppress proxy CONNECT response headers]' \
     --trace-ascii'[Like --trace, but without hex output]':'<file>':_files \
     --connect-timeout'[Maximum time allowed for connection]':'<seconds>' \
     --expect100-timeout'[How long to wait for 100-continue]':'<seconds>' \
     {-g,--globoff}'[Disable URL sequences and ranges using {} and \[\]]' \
  +  {-j,--junk-session-cookies}'[Ignore session cookies read from file]' \
     {-m,--max-time}'[Maximum time allowed for the transfer]':'<seconds>' \
     --dns-ipv4-addr'[IPv4 address to use for DNS requests]':'<address>' \
     --dns-ipv6-addr'[IPv6 address to use for DNS requests]':'<address>' \
  -  --ignore-content-length'[the size of the remote resource]':'Ignore' \
     {-k,--insecure}'[Allow insecure server connections when using SSL]' \
  +  --location-trusted'[Like --location, and send auth to other hosts]' \
     --mail-auth'[Originator address of the original email]':'<address>' \
     --noproxy'[List of hosts which do not use proxy]':'<no-proxy-list>' \
     --proto-redir'[Enable/disable PROTOCOLS on redirect]':'<protocols>' \
  @@ -62,18 +62,19 @@
     --socks5-basic'[Enable username/password auth for SOCKS5 proxies]' \
     --cacert'[CA certificate to verify peer against]':'<file>':_files \
     {-H,--header}'[Pass custom header(s) to server]':'<header/@file>' \
  +  --ignore-content-length'[Ignore the size of the remote resource]' \
     {-i,--include}'[Include protocol response headers in the output]' \
     --proxy-header'[Pass custom header(s) to proxy]':'<header/@file>' \
     --unix-socket'[Connect through this Unix domain socket]':'<path>' \
     {-w,--write-out}'[Use output FORMAT after completion]':'<format>' \
  -  --http2-prior-knowledge'[HTTP 2 without HTTP/1.1 Upgrade]':'Use' \
     {-o,--output}'[Write to file instead of stdout]':'<file>':_files \
  -  {-J,--remote-header-name}'[the header-provided filename]':'Use' \
  +  --preproxy'[\[protocol://\]host\[:port\] Use this proxy first]' \
     --socks4a'[SOCKS4a proxy on given host + port]':'<host[:port]>' \
     {-Y,--speed-limit}'[Stop transfers slower than this]':'<speed>' \
     {-z,--time-cond}'[Transfer based on a time condition]':'<time>' \
     --capath'[CA directory to verify peer against]':'<dir>':_files \
     {-f,--fail}'[Fail silently (no output at all) on HTTP errors]' \
  +  --http2-prior-knowledge'[Use HTTP 2 without HTTP/1.1 Upgrade]' \
     --proxy-tlspassword'[TLS password for HTTPS proxy]':'<string>' \
     {-U,--proxy-user}'[Proxy user and password]':'<user:password>' \
     --proxy1.0'[Use HTTP/1.0 proxy on given port]':'<host[:port]>' \
  @@ -81,52 +82,49 @@
     {-A,--user-agent}'[Send User-Agent <name> to server]':'<name>' \
     --egd-file'[EGD socket path for random data]':'<file>':_files \
     --fail-early'[Fail on first transfer error, do not continue]' \
  -  --haproxy-protocol'[HAProxy PROXY protocol v1 header]':'Send' \
  -  --preproxy'[Use this proxy first]':'[protocol://]host[:port]' \
  +  {-J,--remote-header-name}'[Use the header-provided filename]' \
     --retry-max-time'[Retry only within this period]':'<seconds>' \
     --socks4'[SOCKS4 proxy on given host + port]':'<host[:port]>' \
     --socks5'[SOCKS5 proxy on given host + port]':'<host[:port]>' \
  -  --socks5-gssapi-nec'[with NEC SOCKS5 server]':'Compatibility' \
  -  --ssl-allow-beast'[security flaw to improve interop]':'Allow' \
     --cert-status'[Verify the status of the server certificate]' \
  -  --ftp-create-dirs'[the remote dirs if not present]':'Create' \
     {-:,--next}'[Make next URL use its separate set of options]' \
     --proxy-key-type'[Private key file type for proxy]':'<type>' \
  -  --remote-name-all'[the remote file name for all URLs]':'Use' \
     {-X,--request}'[Specify request command to use]':'<command>' \
     --retry'[Retry request if transient problems occur]':'<num>' \
  -  --ssl-no-revoke'[cert revocation checks (WinSSL)]':'Disable' \
     --cert-type'[Certificate file type (DER/PEM/ENG)]':'<type>' \
     --connect-to'[Connect to host]':'<HOST1:PORT1:HOST2:PORT2>' \
     --create-dirs'[Create necessary local directory hierarchy]' \
  +  --haproxy-protocol'[Send HAProxy PROXY protocol v1 header]' \
     --max-redirs'[Maximum number of redirects allowed]':'<num>' \
     {-n,--netrc}'[Must read .netrc for user name and password]' \
  +  {-x,--proxy}'[\[protocol://\]host\[:port\] Use this proxy]' \
     --proxy-crlfile'[Set a CRL list for proxy]':'<file>':_files \
     --sasl-ir'[Enable initial response in SASL authentication]' \
  -  --socks5-gssapi'[GSS-API auth for SOCKS5 proxies]':'Enable' \
  +  --socks5-gssapi-nec'[Compatibility with NEC SOCKS5 server]' \
  +  --ssl-allow-beast'[Allow security flaw to improve interop]' \
  +  --ftp-create-dirs'[Create the remote dirs if not present]' \
     --interface'[Use network INTERFACE (or address)]':'<name>' \
     --key-type'[Private key file type (DER/PEM/ENG)]':'<type>' \
     --netrc-file'[Specify FILE for netrc]':'<filename>':_files \
     {-N,--no-buffer}'[Disable buffering of the output stream]' \
     --proxy-service-name'[SPNEGO proxy service name]':'<name>' \
  -  --styled-output'[styled output for HTTP headers]':'Enable' \
  +  --remote-name-all'[Use the remote file name for all URLs]' \
  +  --ssl-no-revoke'[Disable cert revocation checks (WinSSL)]' \
     --max-filesize'[Maximum file size to download]':'<bytes>' \
     --negotiate'[Use HTTP Negotiate (SPNEGO) authentication]' \
     --no-keepalive'[Disable TCP keepalive on the connection]' \
     {-#,--progress-bar}'[Display transfer progress as a bar]' \
  -  {-x,--proxy}'[Use this proxy]':'[protocol://]host[:port]' \
  -  --proxy-anyauth'[any proxy authentication method]':'Pick' \
     {-Q,--quote}'[Send command(s) to server before transfer]' \
  -  --request-target'[the target for this request]':'Specify' \
  +  --socks5-gssapi'[Enable GSS-API auth for SOCKS5 proxies]' \
     {-u,--user}'[Server user and password]':'<user:password>' \
     {-K,--config}'[Read config from a file]':'<file>':_files \
     {-C,--continue-at}'[Resumed transfer offset]':'<offset>' \
     --data-raw'[HTTP POST data, '\''@'\'' allowed]':'<data>' \
  -  --disallow-username-in-url'[username in url]':'Disallow' \
     --krb'[Enable Kerberos with security <level>]':'<level>' \
     --proxy-ciphers'[SSL ciphers to use for proxy]':'<list>' \
     --proxy-digest'[Use Digest authentication on the proxy]' \
     --proxy-tlsuser'[TLS username for HTTPS proxy]':'<name>' \
  +  --styled-output'[Enable styled output for HTTP headers]' \
     {-b,--cookie}'[Send cookies from string/file]':'<data>' \
     --data-urlencode'[HTTP POST data url encoded]':'<data>' \
     --delegation'[GSS-API delegation permission]':'<LEVEL>' \
  @@ -134,7 +132,10 @@
     --post301'[Do not switch to GET after following a 301]' \
     --post302'[Do not switch to GET after following a 302]' \
     --post303'[Do not switch to GET after following a 303]' \
  +  --proxy-anyauth'[Pick any proxy authentication method]' \
  +  --request-target'[Specify the target for this request]' \
     --trace-time'[Add time stamps to trace/verbose output]' \
  +  --disallow-username-in-url'[Disallow username in url]' \
     --dns-servers'[DNS server addrs to use]':'<addresses>' \
     {-G,--get}'[Put the post data in the URL and use GET]' \
     --limit-rate'[Limit transfer speed to RATE]':'<speed>' \
  @@ -148,21 +149,21 @@
     --metalink'[Process given URLs as metalink XML file]' \
     --tr-encoding'[Request compressed transfer encoding]' \
     --xattr'[Store metadata in extended file attributes]' \
  -  --ftp-skip-pasv-ip'[the IP address for PASV]':'Skip' \
     --pass'[Pass phrase for the private key]':'<phrase>' \
     --proxy-ntlm'[Use NTLM authentication on the proxy]' \
     {-S,--show-error}'[Show error even when -s is used]' \
  -  --ciphers'[of ciphers> SSL ciphers to use]':'<list' \
  +  --ciphers'[SSL ciphers to use]':'<list of ciphers>' \
     --form-string'[Specify multipart MIME data]':'<name=string>' \
     --login-options'[Server login options]':'<options>' \
     --tftp-blksize'[Set TFTP BLKSIZE option]':'<value>' \
  -  --tftp-no-options'[not send any TFTP options]':'Do' \
     {-v,--verbose}'[Make the operation more talkative]' \
  +  --ftp-skip-pasv-ip'[Skip the IP address for PASV]' \
     --proxy-key'[Private key for HTTPS proxy]':'<key>' \
     {-F,--form}'[Specify multipart MIME data]':'<name=content>' \
     --mail-from'[Mail from this address]':'<address>' \
     --oauth2-bearer'[OAuth 2 Bearer Token]':'<token>' \
     --proto'[Enable/disable PROTOCOLS]':'<protocols>' \
  +  --tftp-no-options'[Do not send any TFTP options]' \
     --tlsauthtype'[TLS authentication type]':'<type>' \
     --doh-url'[Resolve host names over DOH]':'<URL>' \
     --no-sessionid'[Disable SSL session-ID reusing]' \
  @@ -173,14 +174,13 @@
     --ftp-ssl-ccc'[Send CCC after authenticating]' \
     {-4,--ipv4}'[Resolve names to IPv4 addresses]' \
     {-6,--ipv6}'[Resolve names to IPv6 addresses]' \
  -  --netrc-optional'[either .netrc or URL]':'Use' \
     --service-name'[SPNEGO service name]':'<name>' \
     {-V,--version}'[Show version number and quit]' \
     --data-ascii'[HTTP POST ASCII data]':'<data>' \
     --ftp-account'[Account data string]':'<data>' \
  -  --compressed-ssh'[SSH compression]':'Enable' \
     --disable-eprt'[Inhibit using EPRT or LPRT]' \
     --ftp-method'[Control CWD usage]':'<method>' \
  +  --netrc-optional'[Use either .netrc or URL]' \
     --pubkey'[SSH Public key file name]':'<key>' \
     --raw'[Do HTTP "raw"; no transfer decoding]' \
     --anyauth'[Pick any authentication method]' \
  @@ -189,6 +189,7 @@
     --no-alpn'[Disable the ALPN TLS extension]' \
     --tcp-nodelay'[Use the TCP_NODELAY option]' \
     {-B,--use-ascii}'[Use ASCII/text transfer]' \
  +  --compressed-ssh'[Enable SSH compression]' \
     --digest'[Use HTTP Digest Authentication]' \
     --proxy-tlsv1'[Use TLSv1 for HTTPS proxy]' \
     --engine'[Crypto engine to use]':'<name>' \

Marcel Raad (7 Feb 2019)
- tool_operate: fix typecheck warning
  
  Use long for CURLOPT_HTTP09_ALLOWED to fix the following warning:
  tool_operate.c: In function 'operate_do':
  ../include/curl/typecheck-gcc.h:47:9: error: call to
  '_curl_easy_setopt_err_long' declared with attribute warning:
  curl_easy_setopt expects a long argument for this option [-Werror]
  
  Closes https://github.com/curl/curl/pull/3534

Jay Satiro (6 Feb 2019)
- [Chris Araman brought this change]

  url: close TLS before removing conn from cache
  
  - Fix potential crashes in schannel shutdown.
  
  Ensure any TLS shutdown messages are sent before removing the
  association between the connection and the easy handle. Reverts
  @bagder's previous partial fix for #3412.
  
  Fixes https://github.com/curl/curl/issues/3412
  Fixes https://github.com/curl/curl/issues/3505
  Closes https://github.com/curl/curl/pull/3531

Daniel Gustafsson (6 Feb 2019)
- INTERNALS.md: fix subsection depth and link
  
  The Kerberos subsection was mistakenly a subsubsection under FTP, and
  the curlx subsection was missing an anchor for the TOC link.
  
  Closes #3529
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Version 7.64.0 (6 Feb 2019)

Daniel Stenberg (6 Feb 2019)
- RELEASE-NOTES: 7.64.0

- RELEASE-PROCEDURE: update the release calendar

- THANKS: 7.64.0 status

Daniel Gustafsson (5 Feb 2019)
- ROADMAP: remove already performed item
  
  Commit 7a09b52c98ac8d840a8a9907b1a1d9a9e684bcf5 introduced support
  for the draft-ietf-httpbis-cookie-alone-01 cookie draft, and while
  the entry was removed from the TODO it was mistakenly left here.
  Fix by removing and rewording the entry slightly.
  
  Closes #3530
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

- [Etienne Simard brought this change]

  CONTRIBUTE.md: Fix grammatical errors
  
  Fix grammatical errors making the document read better. Also fixes
  a typo.
  
  Closes #3525
  Reviewed-by: Daniel Gustafsson <daniel@yesql.se>

Daniel Stenberg (4 Feb 2019)
- [Julian Z brought this change]

  docs: use $(INSTALL_DATA) to install man page
  
  Fixes #3518
  Closes #3522

Jay Satiro (4 Feb 2019)
- [Ladar Levison brought this change]

  runtests.pl: Fix perl call to include srcdir
  
  - Use explicit include opt for perl calls.
  
  Prior to this change some scripts couldn't find their dependencies.
  
  At the top, perl is called using with the "-Isrcdir" option, and it
  works:
  
  https://github.com/curl/curl/blob/curl-7_63_0/tests/runtests.pl#L183
  
  But on line 3868, that option is omitted. This caused problems for me,
  as the symbol-scan.pl script in particular couldn't find its
  dependencies properly:
  
  https://github.com/curl/curl/blob/curl-7_63_0/tests/runtests.pl#L3868
  
  This patch fixes that oversight by making calls to perl sub-shells
  uniform.
  
  Closes https://github.com/curl/curl/pull/3496

Daniel Stenberg (4 Feb 2019)
- [Daniel Gustafsson brought this change]

  smtp: avoid risk of buffer overflow in strtol
  
  If the incoming len 5, but the buffer does not have a termination
  after 5 bytes, the strtol() call may keep reading through the line
  buffer until is exceeds its boundary. Fix by ensuring that we are
  using a bounded read with a temporary buffer on the stack.
  
  Bug: https://curl.haxx.se/docs/CVE-2019-3823.html
  Reported-by: Brian Carpenter (Geeknik Labs)
  CVE-2019-3823

- ntlm: fix *_type3_message size check to avoid buffer overflow
  
  Bug: https://curl.haxx.se/docs/CVE-2019-3822.html
  Reported-by: Wenxiang Qian
  CVE-2019-3822

- 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.
  
  Fixes https://github.com/curl/curl/issues/3503
  Closes https://github.com/curl/curl/pull/3509

Daniel Stenberg (1 Feb 2019)
- RELEASE-NOTES: synced

- schannel: stop calling it "winssl"
  
  Stick to "Schannel" everywhere. The configure option --with-winssl is
  kept to allow existing builds to work but --with-schannel is added as an
  alias.
  
  Closes #3504

- multi: set the EXPIRE_*TIMEOUT timers at TIMER_STARTSINGLE time
  
  To make sure Curl_timeleft() also thinks the timeout has been reached
  when one of the EXPIRE_*TIMEOUTs expires.
  
  Bug: https://curl.haxx.se/mail/lib-2019-01/0073.html
  Reported-by: Zhao Yisha
  Closes #3501

- [John Marshall brought this change]

  doc: use meaningless port number in CURLOPT_LOCALPORT example
  
  Use an ephemeral port number here; previously the example had 8080
  which could be confusing as the common web server port number might
  be misinterpreted as suggesting this option affects the remote port.
  
  URL: https://curl.haxx.se/mail/lib-2019-01/0084.html
  Closes #3513

GitHub (29 Jan 2019)
- [Gisle Vanem brought this change]

  Escape the '\'
  
  A backslash should be escaped in Roff / Troff.

Jay Satiro (29 Jan 2019)
- TODO: WinSSL: 'Add option to disable client cert auto-send'
  
  By default WinSSL selects and send a client certificate automatically,
  but for privacy and consistency we should offer an option to disable the
  default auto-send behavior.
  
  Reported-by: Jeroen Ooms
  
  Closes https://github.com/curl/curl/issues/2262

Daniel Stenberg (28 Jan 2019)
- [Jeremie Rapin brought this change]

  sigpipe: if mbedTLS is used, ignore SIGPIPE
  
  mbedTLS doesn't have a sigpipe management. If a write/read occurs when
  the remote closes the socket, the signal is raised and kills the
  application.  Use the curl mecanisms fix this behavior.
  
  Signed-off-by: Jeremie Rapin <j.rapin@overkiz.com>
  
  Closes #3502

- unit1653: make it survive torture tests

Jay Satiro (28 Jan 2019)
- [Michael Kujawa brought this change]

  timeval: Disable MSVC Analyzer GetTickCount warning
  
  Compiling with msvc /analyze and a recent Windows SDK warns against
  using GetTickCount (Suggests to use GetTickCount64 instead.)
  
  Since GetTickCount is only being used when GetTickCount64 isn't
  available, I am disabling that warning.
  
  Fixes https://github.com/curl/curl/issues/3437
  Closes https://github.com/curl/curl/pull/3440

Daniel Stenberg (26 Jan 2019)
- configure: rewrite --enable-code-coverage
  
  The previously used ax_code_coverage.m4 is not license compatible and
  must not be used.
  
  Reported-by: William A. Rowe Jr
  Fixes #3497
  Closes #3499

- [Felix Hädicke brought this change]

  setopt: enable CURLOPT_SSH_KNOWNHOSTS and CURLOPT_SSH_KEYFUNCTION for libssh
  
  CURLOPT_SSH_KNOWNHOSTS and CURLOPT_SSH_KEYFUNCTION are supported for
  libssh as well. So accepting these options only when compiling with
  libssh2 is wrong here.
  
  Fixes #3493
  Closes #3494

- [Felix Hädicke brought this change]

  libssh: do not let libssh create socket
  
  By default, libssh creates a new socket, instead of using the socket
  created by curl for SSH connections.
  
  Pass the socket created by curl to libssh using ssh_options_set() with
  SSH_OPTIONS_FD directly after ssh_new(). So libssh uses our socket
  instead of creating a new one.
  
  This approach is very similar to what is done in the libssh2 code, where
  the socket created by curl is passed to libssh2 when
  libssh2_session_startup() is called.
  
  Fixes #3491
  Closes #3495

- RELEASE-NOTES: synced

- [Archangel_SDY brought this change]

  schannel: preserve original certificate path parameter
  
  Fixes #3480
  Closes #3487

- KNOWN_BUGS: tests not compatible with python3
  
  Closes #3289
  [skip ci]

Daniel Gustafsson (20 Jan 2019)
- memcmp: avoid doing single char memcmp
  
  There is no real gain in performing memcmp() comparisons on single
  characters, so change these to array subscript inspections which
  saves a call and makes the code clearer.
  
  Closes #3486
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
  Reviewed-by: Jay Satiro <raysatiro@yahoo.com>

Daniel Stenberg (19 Jan 2019)
- COPYING: it's 2019
  
  [skip ci]

- [hhb brought this change]

  configure: fix recv/send/select detection on Android
  
  This reverts commit d4f25201fb7da03fc88f90d51101beb3d0026db9.
  
  The overloadable attribute is removed again starting from
  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.
  
  Fixes #3280
  Closes #3321

Daniel Stenberg (18 Jan 2019)
- schannel: on connection close there might not be a transfer
  
  Reported-by: Marcel Raad
  Fixes #3412
  Closes #3483

- [Joel Depooter brought this change]

  ssh: log the libssh2 error message when ssh session startup fails
  
  When a ssh session startup fails, it is useful to know why it has
  failed. This commit changes the message from:
     "Failure establishing ssh session"
  to something like this, for example:
     "Failure establishing ssh session: -5, Unable to exchange encryption keys"
  
  Closes #3481

Alessandro Ghedini (16 Jan 2019)
- Fix typo in manpage

Daniel Stenberg (16 Jan 2019)
- RELEASE-NOTES: synced

Sergei Nikulov (16 Jan 2019)
- cmake: updated check for HAVE_POLL_FINE to match autotools

Daniel Stenberg (16 Jan 2019)
- curl-compilers.m4: check for __ibmxl__ to detect xlclang
  
  Follow-up to 2fa0d57e2e3. The __xlc__ symbol is only defined there if a
  particular flag is used for legacy macros.
  
  Fixes #3474
  Closes #3479

- openssl: fix the SSL_get_tlsext_status_ocsp_resp call
  
  .... to not pass in a const in the second argument as that's not how it
  is supposed to be used and might cause compiler warnings.
  
  Reported-by: Pavel Pavlov
  Fixes #3477
  Closes #3478

- curl-compilers.m4: detect xlclang
  
  Since it isn't totally clang compatible, we detect this IBM clang
  front-end and if detected, avoids some clang specific magic.
  
  Reported-by: Kees Dekker
  Fixes #3474
  Closes #3476

- README: add codacy code quality badge
  
  [skip ci]

- extract_if_dead: follow-up to 54b201b48c90a
  
  extract_if_dead() dead is called from two functions, and only one of
  them should get conn->data updated and now neither call path clears it.
  
  scan-build found a case where conn->data would be NULL dereferenced in
  ConnectionExists() otherwise.
  
  Closes #3473

- multi: remove "Dead assignment"
  
  Found by scan-build. Follow-up to 4c35574bb785ce.
  
  Closes #3471

- tests: move objnames-* from lib into tests
  
  Since they're used purely for testing purposes, I think they should
  rather be stored there.
  
  Closes #3470

Sergei Nikulov (15 Jan 2019)
- travis: added cmake build for osx

Daniel Stenberg (14 Jan 2019)
- [Frank Gevaerts brought this change]

  cookie: fix comment typo (url_path_len -> uri_path_len)
  
  Closes #3469

Marcel Raad (14 Jan 2019)
- winbuild: conditionally use /DZLIB_WINAPI
  
  zlibwapi.lib (dynamic library) and zlibstat.lib (static library) have
  the ZLIB_WINAPI define set by default. Using them requires that define
  too.
  
  Ref: https://zlib.net/DLL_FAQ.txt
  
  Fixes https://github.com/curl/curl/issues/3133
  Closes https://github.com/curl/curl/pull/3460

Daniel Stenberg (14 Jan 2019)
- src/Makefile: make 'tidy' target work for metalink builds

- extract_if_dead: use a known working transfer when checking connections
  
  Make sure that this function sets a proper "live" transfer for the
  connection before calling the protocol-specific connection check
  function, and then clear it again afterward as a non-used connection has
  no current transfer.
  
  Reported-by: Jeroen Ooms
  Reviewed-by: Marcel Raad
  Reviewed-by: Daniel Gustafsson
  Fixes #3463
  Closes #3464

- openssl: adapt to 3.0.0, OpenSSL_version_num() is deprecated
  
  OpenSSL_version() replaces OpenSSL_version_num()
  
  Closes #3462

Sergei Nikulov (11 Jan 2019)
- cmake: added checks for HAVE_VARIADIC_MACROS_C99 and HAVE_VARIADIC_MACROS_GCC

Daniel Stenberg (11 Jan 2019)
- urldata: rename easy_conn to just conn
  
  We use "conn" everywhere to be a pointer to the connection.
  
  Introduces two functions that "attaches" and "detaches" the connection
  to and from the transfer.
  
  Going forward, we should favour using "data->conn" (since a transfer
  always only has a single connection or none at all) to "conn->data"
  (since a connection can have none, one or many transfers associated with
  it and updating conn->data to be correct is error prone and a frequent
  reason for internal issues).
  
  Closes #3442

- tool_cb_prg: avoid integer overflow
  
  When calculating the progress bar width.
  
  Reported-by: Peng Li
  Fixes #3456
  Closes #3458

Daniel Gustafsson (11 Jan 2019)
- travis: turn off copyright year checks in checksrc
  
  Invoking the maintainer intended COPYRIGHTYEAR check for everyone
  in the PR pipeline is too invasive, especially at the turn of the
  year when many files get affected. Remove and leave it as a tool
  for maintainers to verify patches before commits.
  
  This reverts f7bdf4b2e1d81b2652b81b9b3029927589273b41.
  
  After discussion with: Daniel Stenberg

Daniel Stenberg (10 Jan 2019)
- KNOWN_BUGS: cmake makes unusable tool_hugehelp.c with MinGW
  
  Closes #3125

- KNOWN_BUGS: Improve --data-urlencode space encoding
  
  Closes #3229

Patrick Monnerat (10 Jan 2019)
- os400: add a missing closing bracket
  
  See https://github.com/curl/curl/issues/3453#issuecomment-453054458
  
  Reported-by: jonrumsey on github

- os400: fix extra parameter syntax error.
  
  Reported-by: jonrumsey on github
  Closes #3453

Daniel Stenberg (10 Jan 2019)
- test1558: verify CURLINFO_PROTOCOL on file:// transfer
  
  Attempt to reproduce issue #3444.
  
  Closes #3447

- RELEASE-NOTES: synced

- xattr: strip credentials from any URL that is stored
  
  Both user and password are cleared uncondtitionally.
  
  Added unit test 1621 to verify.
  
  Fixes #3423
  Closes #3433

- cookies: allow secure override when done over HTTPS
  
  Added test 1562 to verify.
  
  Reported-by: Jeroen Ooms
  Fixes #3445
  Closes #3450

- multi: multiplexing improvements
  
  Fixes #3436
  Closes #3448
  
   Problem 1
  
  After LOTS of scratching my head, I eventually realized that even when doing
  10 uploads in parallel, sometimes the socket callback to the application that
  tells it what to wait for on the socket, looked like it would reflect the
  status of just the single transfer that just changed state.
  
  Digging into the code revealed that this was indeed the truth. When multiple
  transfers are using the same connection, the application did not correctly get
  the *combined* flags for all transfers which then could make it switch to READ
  (only) when in fact most transfers wanted to get told when the socket was
  WRITEABLE.
  
   Problem 1b
  
  A separate but related regression had also been introduced by me when I
  cleared connection/transfer association better a while ago, as now the logic
  couldn't find the connection and see if that was marked as used by more
  transfers and then it would also prematurely remove the socket from the socket
  hash table even in times other transfers were still using it!
  
   Fix 1
  
  Make sure that each socket stored in the socket hash has a "combined" action
  field of what to ask the application to wait for, that is potentially the ORed
  action of multiple parallel transfers. And remove that socket hash entry only
  if there are no transfers left using it.
  
   Problem 2
  
  The socket hash entry stored an association to a single transfer using that
  socket - and when curl_multi_socket_action() was called to tell libcurl about
  activities on that specific socket only that transfer was "handled".
  
  This was WRONG, as a single socket/connection can be used by numerous parallel
  transfers and not necessarily a single one.
  
   Fix 2
  
  We now store a list of handles in the socket hashtable entry and when libcurl
  is told there's traffic for a particular socket, it now iterates over all
  known transfers using that single socket.

- test1561: improve test name
  
  [skip ci]

- [Katsuhiko YOSHIDA brought this change]

  cookies: skip custom cookies when redirecting cross-site
  
  Closes #3417

- THANKS: fixups and a dedupe
  
  [skip ci]

- timediff: fix math for unsigned time_t
  
  Bug: https://curl.haxx.se/mail/lib-2018-12/0088.html
  
  Closes #3449

- [Bernhard M. Wiedemann brought this change]

  tests: allow tests to pass by 2037-02-12
  
  similar to commit f508d29f3902104018
  
  Closes #3443

- RELEASE-NOTES: synced

- [Brad Spencer brought this change]

  curl_multi_remove_handle() don't block terminating c-ares requests
  
  Added Curl_resolver_kill() for all three resolver modes, which only
  blocks when necessary, along with test 1592 to confirm
  curl_multi_remove_handle() doesn't block unless it must.
  
  Closes #3428
  Fixes #3371

- Revert "http_negotiate: do not close connection until negotiation is completed"
  
  This reverts commit 07ebaf837843124ee670e5b8c218b80b92e06e47.
  
  This also reopens PR #3275 which brought the change now reverted.
  
  Fixes #3384
  Closes #3439

- curl/urlapi.h: include "curl.h" first
  
  This allows programs to include curl/urlapi.h directly.
  
  Reviewed-by: Daniel Gustafsson
  Reported-by: Ben Kohler
  Fixes #3438
  Closes #3441

Marcel Raad (6 Jan 2019)
- VS projects: fix build warning
  
  Starting with Visual Studio 2017 Update 9, Visual Studio doesn't like
  the MinimalRebuild option anymore and warns:
  
  cl : Command line warning D9035: option 'Gm' has been deprecated and
  will be removed in a future release
  
  The option can be safely removed so that the default is used.
  
  Closes https://github.com/curl/curl/pull/3425

- schannel: fix compiler warning
  
  When building with Unicode on MSVC, the compiler warns about freeing a
  pointer to const in Curl_unicodefree. Fix this by declaring it as
  non-const and casting the argument to Curl_convert_UTF8_to_tchar to
  non-const too, like we do in all other places.
  
  Closes https://github.com/curl/curl/pull/3435

Daniel Stenberg (4 Jan 2019)
- [Rikard Falkeborn brought this change]

  printf: introduce CURL_FORMAT_TIMEDIFF_T

- [Rikard Falkeborn brought this change]

  printf: fix format specifiers
  
  Closes #3426

- libtest/stub_gssapi: use "real" snprintf
  
  ... since it doesn't link with libcurl.
  
  Reverts the commit dcd6f81025 changes from this file.
  
  Bug: https://curl.haxx.se/mail/lib-2019-01/0000.html
  Reported-by: Shlomi Fish
  Reviewed-by: Daniel Gustafsson
  Reviewed-by: Kamil Dudka
  
  Closes #3434

- INTERNALS: correct some outdated function names
  
  Closes #3431

- docs/version.d: mention MultiSSL
  
  Reviewed-by: Daniel Gustafsson
  Closes #3432

Daniel Gustafsson (2 Jan 2019)
- [Rikard Falkeborn brought this change]

  examples: Update .gitignore
  
  Add a few missing examples to make `make examples` not leave the
  workspace in a dirty state.
  
  Closes #3427
  Reviewed-by: Daniel Gustafsson <daniel@yesql.se>

- THANKS: add more missing names
  
  Add Adrian Burcea who made the artwork for the curl://up 2018 event
  which was held in Stockholm, Sweden.

- docs: mention potential leak in curl_slist_append
  
  When a non-empty list is appended to, and used as the returnvalue,
  the list pointer can leak in case of an allocation failure in the
  curl_slist_append() call. This is correctly handled in curl code
  usage but we weren't explicitly pointing it out in the API call
  documentation. Fix by extending the RETURNVALUE manpage section
  and example code.
  
  Closes #3424
  Reported-by: dnivras on github
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Marcel Raad (1 Jan 2019)
- tvnow: silence conversion warnings
  
  MinGW-w64 defaults to targeting Windows 7 now, so GetTickCount64 is
  used and the milliseconds are represented as unsigned long long,
  leading to a compiler warning when implicitly converting them to long.

Daniel Stenberg (1 Jan 2019)
- THANKS: dedupe more names
  
  Researched-by: Tae Wong

Marcel Raad (1 Jan 2019)
- [Markus Moeller brought this change]

  ntlm: update selection of type 3 response
  
  NTLM2 did not work i.e. no NTLMv2 response was created. Changing the
  check seems to work.
  
  Ref: https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-NLMP/[MS-NLMP].pdf
  
  Fixes https://github.com/curl/curl/issues/3286
  Closes https://github.com/curl/curl/pull/3287
  Closes https://github.com/curl/curl/pull/3415

Daniel Stenberg (31 Dec 2018)
- THANKS: added missing names from year <= 2000
  
  Due to a report of a missing name in THANKS I manually went through an
  old CHANGES.0 file and added many previously missing names here.

Daniel Gustafsson (30 Dec 2018)
- urlapi: fix parsing ipv6 with zone index
  
  The previous fix for parsing IPv6 URLs with a zone index was a paddle
  short for URLs without an explicit port. This patch fixes that case
  and adds a unit test case.
  
  This bug was highlighted by issue #3408, and while it's not the full
  fix for the problem there it is an isolated bug that should be fixed
  regardless.
  
  Closes #3411
  Reported-by: GitYuanQu on github
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Daniel Stenberg (30 Dec 2018)
- THANKS: dedupe Guenter Knauf
  
  Reported-by: Tae Wong

- THANKS: missing name from the 6.3.1 release!

Daniel Gustafsson (27 Dec 2018)
- RELEASE-NOTES: synced

- [Claes Jakobsson brought this change]

  hostip: support wildcard hosts
  
  This adds support for wildcard hosts in CURLOPT_RESOLVE. These are
  try-last so any non-wildcard entry is resolved first. If specified,
  any host not matched by another CURLOPT_RESOLVE config will use this
  as fallback.
  
  Example send a.com to 10.0.0.1 and everything else to 10.0.0.2:
    curl --resolve *:443:10.0.0.2 --resolve a.com:443:10.0.0.1 \
         https://a.com https://b.com
  
  This is probably quite similar to using:
    --connect-to a.com:443:10.0.0.1:443 --connect-to :443:10.0.0.2:443
  
  Closes #3406
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

- url: fix incorrect indentation

Patrick Monnerat (26 Dec 2018)
- os400: upgrade ILE/RPG binding.
  
  - Trailer function support.
  - http 0.9 option.
  - curl_easy_upkeep.

Daniel Gustafsson (25 Dec 2018)
- FAQ: remove mention of sourceforge for github
  
  The project bug tracker is no longer hosted at sourceforge but is now
  hosted on the curl Github page. Update the FAQ to reflect.
  
  Closes #3410
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

- openvms: fix typos in documentation

- openvms: fix OpenSSL discovery on VAX
  
  The DCL code had a typo in one of the commands which would make the
  OpenSSL discovery on VAX fail. The correct syntax is F$ENVIRONMENT.
  
  Closes #3407
  Reviewed-by: Viktor Szakats <commit@vszakats.net>

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

  cmake: use lowercase for function name like the rest of the code
  
  Reviewed-by: Sergei Nikulov
  
  closes #3196

- Revert "libssh: no data pointer == nothing to do"
  
  This reverts commit c98ee5f67f497195c9 since commit f3ce38739fa fixed the
  problem in a more generic way.

- disconnect: set conn->data for protocol disconnect
  
  Follow-up to fb445a1e18d: Set conn->data explicitly to point out the
  current transfer when invoking the protocol-specific disconnect function
  so that it can work correctly.
  
  Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12173

Jay Satiro (23 Dec 2018)
- [Pavel Pavlov brought this change]

  timeval: Use high resolution timestamps on Windows
  
  - Use QueryPerformanceCounter on Windows Vista+
  
  There is confusing info floating around that QueryPerformanceCounter
  can leap etc, which might have been true long time ago, but no longer
  the case nowadays (perhaps starting from WinXP?). Also, boost and
  std::chrono::steady_clock use QueryPerformanceCounter in a similar way.
  
  Prior to this change GetTickCount or GetTickCount64 was used, which has
  lower resolution. That is still the case for <= XP.
  
  Fixes https://github.com/curl/curl/issues/3309
  Closes https://github.com/curl/curl/pull/3318

Daniel Stenberg (22 Dec 2018)
- libssh: no data pointer == nothing to do

- conncache_unlock: avoid indirection by changing input argument type

- disconnect: separate connections and easy handles better
  
  Do not assume/store assocation between a given easy handle and the
  connection if it can be avoided.
  
  Long-term, the 'conn->data' pointer should probably be removed as it is a
  little too error-prone. Still used very widely though.
  
  Reported-by: masbug on github
  Fixes #3391
  Closes #3400

- libssh: free sftp_canonicalize_path() data correctly
  
  Assisted-by: Harry Sintonen
  
  Fixes #3402
  Closes #3403

- RELEASE-NOTES: synced

- http: added options for allowing HTTP/0.9 responses
  
  Added CURLOPT_HTTP09_ALLOWED and --http0.9 for this purpose.
  
  For now, both the tool and library allow HTTP/0.9 by default.
  docs/DEPRECATE.md lays out the plan for when to reverse that default: 6
  months after the 7.64.0 release. The options are added already now so
  that applications/scripts can start using them already now.
  
  Fixes #2873
  Closes #3383

- if2ip: remove unused function Curl_if_is_interface_name
  
  Closes #3401

- http2: clear pause stream id if it gets closed
  
  Reported-by: Florian Pritz
  
  Fixes #3392
  Closes #3399

Daniel Gustafsson (20 Dec 2018)
- [David Garske brought this change]

  wolfssl: Perform cleanup
  
  This adds a cleanup callback for cyassl. Resolves possible memory leak
  when using ECC fixed point cache.
  
  Closes #3395
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
  Reviewed-by: Daniel Gustafsson <daniel@yesql.se>

Daniel Stenberg (20 Dec 2018)
- mbedtls: follow-up VERIFYHOST fix from f097669248
  
  Fix-by: Eric Rosenquist
  
  Fixes #3376
  Closes #3390

- curlver: bump to 7.64.0 for next release

Daniel Gustafsson (19 Dec 2018)
- cookies: extend domain checks to non psl builds
  
  Ensure to perform the checks we have to enforce a sane domain in
  the cookie request. The check for non-PSL enabled builds is quite
  basic but it's better than nothing.
  
  Closes #2964
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Daniel Stenberg (19 Dec 2018)
- [Matus Uzak brought this change]

  smb: fix incorrect path in request if connection reused
  
  Follow-up to 09e401e01bf9.  If connection gets reused, then data member
  will be copied, but not the proto member.  As a result, in smb_do(),
  path has been set from the original proto.share data.
  
  Closes #3388

- curl -J: do not append to the destination file
  
  Reported-by: Kamil Dudka
  Fixes #3380
  Closes #3381

- mbedtls: use VERIFYHOST
  
  Previously, VERIFYPEER would enable/disable all checks.
  
  Reported-by: Eric Rosenquist
  Fixes #3376
  Closes #3380

- pingpong: change default response timeout to 120 seconds
  
  Previously it was 30 minutes

- pingpong: ignore regular timeout in disconnect phase
  
  The timeout set with CURLOPT_TIMEOUT is no longer used when
  disconnecting from one of the pingpong protocols (FTP, IMAP, SMTP,
  POP3).
  
  Reported-by: jasal82 on github
  
  Fixes #3264
  Closes #3374

- TODO: Windows: set attribute 'archive' for completed downloads
  
  Closes #3354

- RELEASE-NOTES: synced

- http: minor whitespace cleanup from f464535b

- [Ayoub Boudhar brought this change]

  http: Implement trailing headers for chunked transfers
  
  This adds the CURLOPT_TRAILERDATA and CURLOPT_TRAILERFUNCTION
  options that allow a callback based approach to sending trailing headers
  with chunked transfers.
  
  The test server (sws) was updated to take into account the detection of the
  end of transfer in the case of trailing headers presence.
  
  Test 1591 checks that trailing headers can be sent using libcurl.
  
  Closes #3350

- darwinssl: accept setting max-tls with default min-tls
  
  Reported-by: Andrei Neculau
  Fixes #3367
  Closes #3373

- gopher: fix memory leak from 9026083ddb2a9

- [Leonardo Taccari brought this change]

  test1201: Add a trailing `?' to the selector
  
  This verify that the `?' in the selector is kept as is.
  
  Verifies the fix in #3370

- [Leonardo Taccari brought this change]

  gopher: always include the entire gopher-path in request
  
  After the migration to URL API all octets in the selector after the
  first `?' were interpreted as query and accidentally discarded and not
  passed to the server.
  
  Add a gopherpath to always concatenate possible path and query URL
  pieces.
  
  Fixes #3369
  Closes #3370

- [Leonardo Taccari brought this change]

  urlapi: distinguish possibly empty query
  
  If just a `?' to indicate the query is passed always store a zero length
  query instead of having a NULL query.
  
  This permits to distinguish URL with trailing `?'.
  
  Fixes #3369
  Closes #3370

Daniel Gustafsson (13 Dec 2018)
- OS400: handle memory error in list conversion
  
  Curl_slist_append_nodup() returns NULL when it fails to create a new
  item for the specified list, and since the coding here reassigned the
  new list on top of the old list it would result in a dangling pointer
  and lost memory. Also, in case we hit an allocation failure at some
  point during the conversion, with allocation succeeding again on the
  subsequent call(s) we will return a truncated list around the malloc
  failure point. Fix by assigning to a temporary list pointer, which can
  be checked (which is the common pattern for slist appending), and free
  all the resources on allocation failure.
  
  Closes #3372
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

- cookies: leave secure cookies alone
  
  Only allow secure origins to be able to write cookies with the
  'secure' flag set. This reduces the risk of non-secure origins
  to influence the state of secure origins. This implements IETF
  Internet-Draft draft-ietf-httpbis-cookie-alone-01 which updates
  RFC6265.
  
  Closes #2956
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Daniel Stenberg (13 Dec 2018)
- docs: fix the --tls-max description
  
  Reported-by: Tobias Lindgren
  Pointed out in #3367
  
  Closes #3368

Daniel Gustafsson (12 Dec 2018)
- urlapi: Fix port parsing of eol colon
  
  A URL with a single colon without a portnumber should use the default
  port, discarding the colon. Fix, add a testcase and also do little bit
  of comment wordsmithing.
  
  Closes #3365
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Version 7.63.0 (12 Dec 2018)

Daniel Stenberg (12 Dec 2018)
- RELEASE-NOTES: 7.63.0

- THANKS: from the curl 7.62.0 cycle

- test1519: use lib1518 and test CURLINFO_REDIRECT_URL more

- Curl_follow: extract the Location: header field unvalidated
  
  ... when not actually following the redirect. Otherwise we return error
  for this and an application can't extract the value.
  
  Test 1518 added to verify.
  
  Reported-by: Pavel Pavlov
  Fixes #3340
  Closes #3364

- multi: convert two timeout variables to timediff_t
  
  The time_t type is unsigned on some systems and these variables are used
  to hold return values from functions that return timediff_t
  already. timediff_t is always a signed type.
  
  Closes #3363

- delta: use --diff-filter on the git diff-tree invokes
  
  Suggested-by: Dave Reisner

Patrick Monnerat (11 Dec 2018)
- documentation: curl_formadd field and file names are now escaped
  
  Prior to 7.56.0, fieldnames and filenames were set in Content-Disposition
  header without special processing: this may lead to invalid RFC 822
  quoted-strings.
  7.56.0 introduces escaping of backslashes and double quotes in these names:
  mention it in the documentation.
  
  Reported-by: daboul on github
  Closes #3361

Daniel Stenberg (11 Dec 2018)
- scripts/delta: show repo delta info from last release
  
  ... where "last release" should be the git tag in the repo.

Daniel Gustafsson (11 Dec 2018)
- tests: add urlapi unittest
  
  This adds a new unittest intended to cover the internal functions in
  the urlapi code, starting with parse_port(). In order to avoid name
  collisions in debug builds, parse_port() is renamed Curl_parse_port()
  since it will be exported.
  
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>

- urlapi: fix portnumber parsing for ipv6 zone index
  
  An IPv6 URL which contains a zone index includes a '%%25<zode id>'
  string before the ending ']' bracket. The parsing logic wasn't set
  up to cope with the zone index however, resulting in a malformed url
  error being returned. Fix by breaking the parsing into two stages
  to correctly handle the zone index.
  
  Closes #3355
  Closes #3319
  Reported-by: tonystz on Github
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>

Daniel Stenberg (11 Dec 2018)
- [Jay Satiro brought this change]

  http: fix HTTP auth to include query in URI
  
  - Include query in the path passed to generate HTTP auth.
  
  Recent changes to use the URL API internally (46e1640, 7.62.0)
  inadvertently broke authentication URIs by omitting the query.
  
  Fixes https://github.com/curl/curl/issues/3353
  Closes #3356

- [Michael Kaufmann brought this change]

  http: don't set CURLINFO_CONDITION_UNMET for http status code 204
  
  The http status code 204 (No Content) should not change the "condition
  unmet" flag. Only the http status code 304 (Not Modified) should do
  this.
  
  Closes #359

- [Samuel Surtees brought this change]

  ldap: fix LDAP URL parsing regressions
  
  - Match URL scheme with LDAP and LDAPS
  - Retrieve attributes, scope and filter from URL query instead
  
  Regression brought in 46e164069d1a5230 (7.62.0)
  
  Closes #3362

- RELEASE-NOTES: synced

- [Stefan Kanthak brought this change]

  (lib)curl.rc: fixup for minor bugs
  
  All resources defined in lib/libcurl.rc and curl.rc are language
  neutral.
  
  winbuild/MakefileBuild.vc ALWAYS defines the macro DEBUGBUILD, so the
  ifdef's in line 33 of lib/libcurl.rc and src/curl.rc are wrong.
  
  Replace the hard-coded constants in both *.rc files with #define'd
  values.
  
  Thumbs-uped-by: Rod Widdowson, Johannes Schindelin
  URL: https://curl.haxx.se/mail/lib-2018-11/0000.html
  Closes #3348

- test329: verify cookie max-age=0 immediate expiry

- cookies: expire "Max-Age=0" immediately
  
  Reported-by: Jeroen Ooms
  Fixes #3351
  Closes #3352

- [Johannes Schindelin brought this change]

  Upon HTTP_1_1_REQUIRED, retry the request with HTTP/1.1
  
  This is a companion patch to cbea2fd2c (NTLM: force the connection to
  HTTP/1.1, 2018-12-06): with NTLM, we can switch to HTTP/1.1
  preemptively. However, with other (Negotiate) authentication it is not
  clear to this developer whether there is a way to make it work with
  HTTP/2, so let's try HTTP/2 first and fall back in case we encounter the
  error HTTP_1_1_REQUIRED.
  
  Note: we will still keep the NTLM workaround, as it avoids an extra
  round trip.
  
  Daniel Stenberg helped a lot with this patch, in particular by
  suggesting to introduce the Curl_h2_http_1_1_error() function.
  
  Closes #3349
  
  Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

- [Ben Greear brought this change]

  openssl: fix unused variable compiler warning with old openssl
  
  URL: https://curl.haxx.se/mail/lib-2018-11/0055.html
  
  Closes #3347

- [Johannes Schindelin brought this change]

  NTLM: force the connection to HTTP/1.1
  
  Since v7.62.0, cURL tries to use HTTP/2 whenever the server announces
  the capability. However, NTLM authentication only works with HTTP/1.1,
  and will likely remain in that boat (for details, see
  https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/http2-on-iis#when-is-http2-not-supported).
  
  When we just found out that we want to use NTLM, and when the current
  connection runs in HTTP/2 mode, let's force the connection to be closed
  and to be re-opened using HTTP/1.1.
  
  Fixes https://github.com/curl/curl/issues/3341.
  Closes #3345
  
  Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

- [Johannes Schindelin brought this change]

  curl_global_sslset(): id == -1 is not necessarily an error
  
  It is allowed to call that function with id set to -1, specifying the
  backend by the name instead. We should imitate what is done further down
  in that function to allow for that.
  
  Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
  
  Closes #3346

Johannes Schindelin (6 Dec 2018)
- .gitattributes: make tabs in indentation a visible error
  
  Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>

Daniel Stenberg (6 Dec 2018)
- RELEASE-NOTES: synced

- doh: fix memory leak in OOM situation
  
  Reviewed-by: Daniel Gustafsson
  Closes #3342

- doh: make it work for h2-disabled builds too
  
  Reported-by: dtmsecurity at github
  Fixes #3325
  Closes #3336

- packages: remove old leftover files and dirs
  
  This subdir has mostly become an attic of never-used cruft from the
  past.
  
  Closes #3331

- [Gergely Nagy brought this change]

  openssl: do not use file BIOs if not requested
  
  Moves the file handling BIO calls to the branch of the code where they
  are actually used.
  
  Closes #3339

- [Paul Howarth brought this change]

  nss: Fix compatibility with nss versions 3.14 to 3.15

- [Paul Howarth brought this change]

  nss: Improve info message when falling back SSL protocol
  
  Use descriptive text strings rather than decimal numbers.

- [Paul Howarth brought this change]

  nss: Fall back to latest supported SSL version
  
  NSS may be built without support for the latest SSL/TLS versions,
  leading to "SSL version range is not valid" errors when the library
  code supports a recent version (e.g. TLS v1.3) but it has explicitly
  been disabled.
  
  This change adjusts the maximum SSL version requested by libcurl to
  be the maximum supported version at runtime, as long as that version
  is at least as high as the minimum version required by libcurl.
  
  Fixes #3261

Daniel Gustafsson (3 Dec 2018)
- travis: enable COPYRIGHTYEAR extended warning
  
  The extended warning for checking incorrect COPYRIGHTYEAR is quite
  expensive to run, so rather than expecting every developer to do it
  we ensure it's turned on locally for Travis.

- checksrc: add COPYRIGHTYEAR check
  
  Forgetting to bump the year in the copyright clause when hacking has
  been quite common among curl developers, but a traditional checksrc
  check isn't a good fit as it would penalize anyone hacking on January
  1st (among other things). This adds a more selective COPYRIGHTYEAR
  check which intends to only cover the currently hacked on changeset.
  
  The check for updated copyright year is currently not enforced on all
  files but only on files edited and/or committed locally. This is due to
  the amount of files which aren't updated with their correct copyright
  year at the time of their respective commit.
  
  To further avoid running this expensive check for every developer, it
  adds a new local override mode for checksrc where a .checksrc file can
  be used to turn on extended warnings locally.
  
  Closes #3303
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Daniel Stenberg (3 Dec 2018)
- CHECKSRC.md: document more warnings
  
  Closes #3335
  [ci skip]

- RELEASE-NOTES: synced

- SECURITY-PROCESS: bountygraph shuts down
  
  This backpedals back the documents to the state before bountygraph.
  
  Closes #3311

- curl: fix memory leak reading --writeout from file
  
  If another string had been set first, the writout function for reading
  the syntax from file would leak the previously allocated memory.
  
  Reported-by: Brian Carpenter
  Fixes #3322
  Closes #3330

- tool_main: rename function to make it unique and better
  
  ... there's already another function in the curl tool named
  free_config_fields!

Daniel Gustafsson (29 Nov 2018)
- TODO: remove CURLOPT_DNS_USE_GLOBAL_CACHE entry
  
  Commit 7c5837e79280e6abb3ae143dfc49bca5e74cdd11 deprecated the option
  making it a manual code-edit operation to turn it back on. The removal
  process has thus started and is now documented in docs/DEPRECATE.md so
  remove from the TODO to avoid anyone looking for something to pick up
  spend cycles on an already in-progress entry.
  
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Jay Satiro (29 Nov 2018)
- [Sevan Janiyan brought this change]

  connect: fix building for recent versions of Minix
  
  EBADIOCTL doesn't exist on more recent Minix.
  There have also been substantial changes to the network stack.
  Fixes build on Minix 3.4rc
  
  Closes https://github.com/curl/curl/pull/3323

- [Konstantin Kushnir brought this change]

  CMake: fix MIT/Heimdal Kerberos detection
  
  - fix syntax error in FindGSS.cmake
  - correct krb5 include directory. FindGSS exports
    "GSS_INCLUDE_DIR" variable.
  
  Closes https://github.com/curl/curl/pull/3316

Daniel Stenberg (28 Nov 2018)
- test328: verify Content-Encoding: none
  
  Because of issue #3315
  
  Closes #3317

- [James Knight brought this change]

  configure: include all libraries in ssl-libs fetch
  
  When compiling a collection of SSL libraries to link against (SSL_LIBS),
  ensure all libraries are included. The call `--libs-only-l` can produce
  only a subset of found in a `--libs` call (e.x. pthread may be excluded).
  Adding `--libs-only-other` ensures other libraries are also included in
  the list. This corrects select build environments compiling against a
  static version of OpenSSL. Before the change, the following could be
  observed:
  
      checking for openssl options with pkg-config... found
      configure: pkg-config: SSL_LIBS: "-lssl -lz -ldl -lcrypto -lz -ldl "
      configure: pkg-config: SSL_LDFLAGS: "-L/home/jdknight/<workdir>/staging/usr/lib -L/home/jdknight/<workdir>/staging/usr/lib "
      configure: pkg-config: SSL_CPPFLAGS: "-I/home/jdknight/<workdir>/staging/usr/include "
      checking for HMAC_Update in -lcrypto... no
      checking for HMAC_Init_ex in -lcrypto... no
      checking OpenSSL linking with -ldl... no
      checking OpenSSL linking with -ldl and -lpthread... no
      configure: WARNING: SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.
      configure: WARNING: Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.
      ...
      SSL support:      no      (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )
      ...
  
  And include the other libraries when compiling SSL_LIBS succeeds with:
  
      checking for openssl options with pkg-config... found
      configure: pkg-config: SSL_LIBS: "-lssl -lz -ldl -pthread -lcrypto -lz -ldl -pthread "
      configure: pkg-config: SSL_LDFLAGS: "-L/home/jdknight/<workdir>/staging/usr/lib -L/home/jdknight/<workdir>/staging/usr/lib "
      configure: pkg-config: SSL_CPPFLAGS: "-I/home/jdknight/<workdir>/staging/usr/include "
      checking for HMAC_Update in -lcrypto... yes
      checking for SSL_connect in -lssl... yes
      ...
      SSL support:      enabled (OpenSSL)
      ...
  
  Signed-off-by: James Knight <james.d.knight@live.com>
  Closes #3193

Daniel Gustafsson (26 Nov 2018)
- doh: fix typo in infof call
  
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

- cmdline-opts/gen.pl: define the correct varname
  
  The variable definition had a small typo making it declare another
  variable then the intended.
  
  Closes #3304
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

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

- curl_easy_perform: fix timeout handling
  
  curl_multi_wait() was erroneously used from within
  curl_easy_perform(). It could lead to it believing there was no socket
  to wait for and then instead sleep for a while instead of monitoring the
  socket and then miss acting on that activity as swiftly as it should
  (causing an up to 1000 ms delay).
  
  Reported-by: Antoni Villalonga
  Fixes #3305
  Closes #3306
  Closes #3308

- CURLOPT_WRITEFUNCTION.3: spell out that it gets called many times

- cookies: create the cookiejar even if no cookies to save
  
  Important for when the file is going to be read again and thus must not
  contain old contents!
  
  Adds test 327 to verify.
  
  Reported-by: daboul on github
  Fixes #3299
  Closes #3300

- checksrc: ban snprintf use, add command line flag to override warns

- snprintf: renamed and we now only use msnprintf()
  
  The function does not return the same value as snprintf() normally does,
  so readers may be mislead into thinking the code works differently than
  it actually does. A different function name makes this easier to detect.
  
  Reported-by: Tomas Hoger
  Assisted-by: Daniel Gustafsson
  Fixes #3296
  Closes #3297

- [Tobias Hintze brought this change]

  test: update test20/1322 for eglibc bug workaround
  
  The tests 20 and 1322 are using getaddrinfo of libc for resolving. In
  eglibc-2.19 there is a memory leakage and invalid free bug which
  surfaces in some special circumstances (PF_UNSPEC hint with invalid or
  non-existent names). The valgrind runs in testing fail in these
  situations.
  
  As the tests 20/1322 are not specific on either protocol (IPv4/IPv6)
  this commit changes the hints to IPv4 protocol by passing `--ipv4` flag
  on the tests' command line.  This prevents the valgrind failures.

- [Tobias Hintze brought this change]

  host names: allow trailing dot in name resolve, then strip it
  
  Delays stripping of trailing dots to after resolving the hostname.
  
  Fixes #3022
  Closes #3222

- [UnknownShadow200 brought this change]

  CURLOPT_HEADERFUNCTION.3: match 'nitems' name in synopsis and description
  
  Closes #3295

Daniel Gustafsson (21 Nov 2018)
- configure: Fix typo in comment

Michael Kaufmann (21 Nov 2018)
- openssl: support session resume with TLS 1.3
  
  Session resumption information is not available immediately after a TLS 1.3
  handshake. The client must wait until the server has sent a session ticket.
  
  Use OpenSSL's "new session" callback to get the session information and put it
  into curl's session cache. For TLS 1.3 sessions, this callback will be invoked
  after the server has sent a session ticket.
  
  The "new session" callback is invoked only if OpenSSL's session cache is
  enabled, so enable it and use the "external storage" mode which lets curl manage
  the contents of the session cache.
  
  A pointer to the connection data and the sockindex are now saved as "SSL extra
  data" to make them available to the callback.
  
  This approach also works for old SSL/TLS versions and old OpenSSL versions.
  
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>
  
  Fixes #3202
  Closes #3271

- ssl: fix compilation with OpenSSL 0.9.7
  
  - ENGINE_cleanup() was used without including "openssl/engine.h"
  - enable engine support for OpenSSL 0.9.7
  
  Closes #3266

Daniel Stenberg (21 Nov 2018)
- openssl: disable TLS renegotiation with BoringSSL
  
  Since we're close to feature freeze, this change disables this feature
  with an #ifdef. Define ALLOW_RENEG at build-time to enable.
  
  This could be converted to a bit for CURLOPT_SSL_OPTIONS to let
  applications opt-in this.
  
  Concern-raised-by: David Benjamin
  Fixes #3283
  Closes #3293

- [Romain Fliedel brought this change]

  ares: remove fd from multi fd set when ares is about to close the fd
  
  When using c-ares for asyn dns, the dns socket fd was silently closed
  by c-ares without curl being aware. curl would then 'realize' the fd
  has been removed at next call of Curl_resolver_getsock, and only then
  notify the CURLMOPT_SOCKETFUNCTION to remove fd from its poll set with
  CURL_POLL_REMOVE. At this point the fd is already closed.
  
  By using ares socket state callback (ARES_OPT_SOCK_STATE_CB), this
  patch allows curl to be notified that the fd is not longer needed
  for neither for write nor read. At this point by calling
  Curl_multi_closed we are able to notify multi with CURL_POLL_REMOVE
  before the fd is actually closed by ares.
  
  In asyn-ares.c Curl_resolver_duphandle we can't use ares_dup anymore
  since it does not allow passing a different sock_state_cb_data
  
  Closes #3238

- [Romain Fliedel brought this change]

  examples/ephiperfifo: report error when epoll_ctl fails

Daniel Gustafsson (20 Nov 2018)
- [pkubaj brought this change]

  ntlm: Remove redundant ifdef USE_OPENSSL
  
  lib/curl_ntlm.c had code that read as follows:
  
    #ifdef USE_OPENSSL
    # ifdef USE_OPENSSL
    # else
    # ..
    # endif
    #endif
  
  Remove the redundant USE_OPENSSL along with #else (it's not possible to
  reach it anyway). The removed construction is a leftover from when the
  SSLeay support was removed.
  
  Closes #3269
  Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Daniel Stenberg (20 Nov 2018)
- [Han Han brought this change]

  ssl: replace all internal uses of CURLE_SSL_CACERT
  
  Closes #3291

Han Han (19 Nov 2018)
- docs: add more description to unified ssl error codes

- curle: move deprecated error code to ifndef block

Patrick Monnerat (19 Nov 2018)
- os400: add CURLOPT_CURLU to ILE/RPG binding.

- os400: Add curl_easy_conn_upkeep() to ILE/RPG binding.

- os400: fix return type of curl_easy_pause() in ILE/RPG binding.

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

- impacket: add LICENSE
  
  The license for the impacket package was not in our tree.
  
  Imported now from upstream's
  https://github.com/SecureAuthCorp/impacket/blob/master/LICENSE
  
  Reported-by: infinnovation-dev on github
  Fixes #3276
  Closes #3277

Daniel Gustafsson (18 Nov 2018)
- tool_doswin: Fix uninitialized field warning
  
  The partial struct initialization in 397664a065abffb7c3445ca9 caused
  a warning on uninitialized MODULEENTRY32 struct members:
  
    /src/tool_doswin.c:681:3: warning: missing initializer for field
    'th32ModuleID' of 'MODULEENTRY32 {aka struct tagMODULEENTRY32}'
    [-Wmissing-field-initializers]
  
  This is sort of a bogus warning as the remaining members will be set
  to zero by the compiler, as all omitted members are. Nevertheless,
  remove the warning by omitting all members and setting the dwSize
  members explicitly.
  
  Closes #3254
  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
  Reviewed-by: Jay Satiro <raysatiro@yahoo.com>

- openssl: Remove SSLEAY leftovers
  
  Commit 709cf76f6bb7dbac deprecated USE_SSLEAY, as curl since long isn't
  compatible with the SSLeay library. This removes the few leftovers that
  were omitted in the less frequently used platform targets.
  
  Closes #3270
  Reviewed-by: Daniel Stenberg <daniel@haxx.se>

Daniel Stenberg (16 Nov 2018)
- [Elia Tufarolo brought this change]

  http_negotiate: do not close connection until negotiation is completed
  
  Fix HTTP POST using CURLAUTH_NEGOTIATE.
  
  Closes #3275

- pop3: only do APOP with a valid timestamp
  
  Brought-by: bobmitchell1956 on github
  Fixes #3278
  Closes #3279

Jay Satiro (16 Nov 2018)
- [Peter Wu brought this change]

  openssl: do not log excess "TLS app data" lines for TLS 1.3
  
  The SSL_CTX_set_msg_callback callback is not just called for the
  Handshake or Alert protocols, but also for the raw record header
  (SSL3_RT_HEADER) and the decrypted inner record type
  (SSL3_RT_INNER_CONTENT_TYPE). Be sure to ignore the latter to avoid
  excess debug spam when using `curl -v` against a TLSv1.3-enabled server:
  
      * TLSv1.3 (IN), TLS app data, [no content] (0):
  
  (Following this message, another callback for the decrypted
  handshake/alert messages will be be present anyway.)
  
  Closes https://github.com/curl/curl/pull/3281

Marc Hoersken (15 Nov 2018)
- tests: disable SO_EXCLUSIVEADDRUSE for stunnel on Windows
  
  SO_EXCLUSIVEADDRUSE is on by default on Vista or newer,
  but does not work together with SO_REUSEADDR being on.
  
  The default changes were made with stunnel 5.34 and 5.35.

Daniel Stenberg (13 Nov 2018)
- [Kamil Dudka brought this change]

  nss: remove version selecting dead code
  
  Closes #3262

- nss: set default max-tls to 1.3/1.2
  
  Fixes #3261

Daniel Gustafsson (13 Nov 2018)
- tool_cb_wrt: Silence function cast compiler warning
  
  Commit 5bfaa86ceb3c2a9ac474a928e748c4a86a703b33 introduced a new
  compiler warning on Windows cross compilation with GCC. See below
  for an example of the warning from the autobuild logs (whitespace
  edited to fit):
  
  /src/tool_cb_wrt.c:175:9: warning: cast from function call of type
      'intptr_t {aka long long int}' to non-matching type 'void *'
      [-Wbad-function-cast]
  (HANDLE) _get_osfhandle(fileno(outs->stream)),
  ^
  
  Store the return value from _get_osfhandle() in an intermediate
  variable and cast the variable in WriteConsoleW() rather than the
  function call directly to avoid a compiler warning.
  
  In passing, also add inspection of the MultiByteToWideChar() return
  value and return failure in case an error is reported.
  
  Closes #3263
  Reviewed-by: Marcel Raad <Marcel.Raad@teamviewer.com>
  Reviewed-by: Viktor Szakats <commit@vszakats.net>

Daniel Stenberg (12 Nov 2018)
- nss: fix fallthrough comment to fix picky compiler warning

- docs: expanded on some CURLU details

- [Tim Rühsen brought this change]

  ftp: avoid two unsigned int overflows in FTP listing parser
  
  Curl_ftp_parselist: avoid unsigned integer overflows
  
  The overflow has no real world impact, just avoid it for "best
  practice".
  
  Closes #3225







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







 







<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
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
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
....
7093
7094
7095
7096
7097
7098
7099









































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































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

                                  Changelog

Version 7.67.0 (5 Nov 2019)

Daniel Stenberg (5 Nov 2019)
- RELEASE-NOTES: synced
  
  The 7.67.0 release

- THANKS: add new names from 7.67.0

- configure: only say ipv6 enabled when the variable is set
  
  Previously it could say "IPv6: enabled" at the end of the configure run
  but the define wasn't set because of a missing getaddrinfo().
  
  Reported-by: Marcel Raad
  Fixes #4555
  Closes #4560

Marcel Raad (2 Nov 2019)
- certs/Server-localhost-lastSAN-sv: regenerate with sha256
  
  All other certificates were regenerated in commit ba782baac30, but
  this one was missed.
  Fixes test3001 on modern systems.
  
  Closes https://github.com/curl/curl/pull/4551

Daniel Stenberg (2 Nov 2019)
- [Vilhelm Prytz brought this change]

  copyrights: update all copyright notices to 2019 on files changed this year
  
  Closes #4547

- [Bastien Bouclet brought this change]

  mbedtls: add error message for cert validity starting in the future
  
  Closes #4552

Jay Satiro (1 Nov 2019)
- schannel_verify: Fix concurrent openings of CA file
  
  - Open the CA file using FILE_SHARE_READ mode so that others can read
    from it as well.
  
  Prior to this change our schannel code opened the CA file without
  sharing which meant concurrent openings (eg an attempt from another
  thread or process) would fail during the time it was open without
  sharing, which in curl's case would cause error:
  "schannel: failed to open CA file".
  
  Bug: https://curl.haxx.se/mail/lib-2019-10/0104.html
  Reported-by: Richard Alcock

Daniel Stenberg (31 Oct 2019)
- gtls: make gnutls_bye() not wait for response on shutdown
  
  ... as it can make it wait there for a long time for no good purpose.
  
  Patched-by: Jay Satiro
  Reported-by: Bylon2 on github
  Adviced-by: Nikos Mavrogiannopoulos
  
  Fixes #4487
  Closes #4541

- [Michał Janiszewski brought this change]

  appveyor: publish artifacts on appveyor
  
  This allows obtaining upstream builds of curl directly from appveyor for
  all the available configurations
  
  Closes #4509

- url: make Curl_close() NULLify the pointer too
  
  This is the common pattern used in the code and by a unified approach we
  avoid mistakes.
  
  Closes #4534

- [Trivikram Kamat brought this change]

  INSTALL: add missing space for configure commands
  
  Closes #4539

- url: Curl_free_request_state() should also free doh handles
  
  ... or risk DoH memory leaks.
  
  Reported-by: Paul Dreik
  Fixes #4463
  Closes #4527

- examples: remove the "this exact code has not been verified"
  
  ... as really confuses the reader to not know what to believe!

- [Trivikram Kamat brought this change]

  HTTP3: fix typo somehere1 > somewhere1
  
  Closes #4535

Jay Satiro (28 Oct 2019)
- [Javier Blazquez brought this change]

  HTTP3: fix invalid use of sendto for connected UDP socket
  
  On macOS/BSD, trying to call sendto on a connected UDP socket fails
  with a EISCONN error. Because the singleipconnect has already called
  connect on the socket when we're trying to use it for QUIC transfers
  we need to use plain send instead.
  
  Fixes #4529
  Closes https://github.com/curl/curl/pull/4533

Daniel Stenberg (28 Oct 2019)
- RELEASE-NOTES: synced

- [Javier Blazquez brought this change]

  HTTP3: fix Windows build
  
  The ngtcp2 QUIC backend was using the MSG_DONTWAIT flag for send/recv
  in order to perform nonblocking operations. On Windows this flag does
  not exist. Instead, the socket must be set to nonblocking mode via
  ioctlsocket.
  
  This change sets the nonblocking flag on UDP sockets used for QUIC on
  all platforms so the use of MSG_DONTWAIT is not needed.
  
  Fixes #4531
  Closes #4532

Marcel Raad (27 Oct 2019)
- appveyor: add --disable-proxy autotools build
  
  This would have caught issue #3926.
  
  Also make formatting more consistent.
  
  Closes https://github.com/curl/curl/pull/4526

Daniel Stenberg (25 Oct 2019)
- appveyor: make winbuilds with DEBUG=no/yes and VS 2015/2017
  
  ... and invoke "curl -V" once done
  
  Co-Authored-By: Jay Satiro
  
  Closes #4523

- [Francois Rivard brought this change]

  schannel: reverse the order of certinfo insertions
  
  Fixes #4518
  Closes #4519

Marcel Raad (24 Oct 2019)
- test1591: fix spelling of http feature
  
  The test never got run because the feature name is `http` in lowercase.
  
  Closes https://github.com/curl/curl/pull/4520

Daniel Stenberg (23 Oct 2019)
- [Michał Janiszewski brought this change]

  appveyor: Use two parallel compilation on appveyor with CMake
  
  Appveyor provides 2 CPUs for each builder[1], make sure to use parallel
  compilation, when running with CMake. CMake learned this new option in
  version 3.12[2] and the version provided by appveyor is fresh enough.
  
  Curl doesn't really take that long to build and it is using the slowest
  builder available, msbuild, so expect only a moderate improvement in
  build times.
  
  [1] https://www.appveyor.com/docs/build-environment/
  [2] https://cmake.org/cmake/help/v3.12/release/3.12.html
  
  Closes #4508

- conn-reuse: requests wanting NTLM can reuse non-NTLM connections
  
  Added test case 338 to verify.
  
  Reported-by: Daniel Silverstone
  Fixes #4499
  Closes #4514

Marcel Raad (23 Oct 2019)
- tests: add missing proxy features

Daniel Stenberg (22 Oct 2019)
- RELEASE-NOTES: synced

Marcel Raad (21 Oct 2019)
- tests: use %FILE_PWD for file:// URLs
  
  This way, we always have exactly one slash after the host name, making
  the tests pass when curl is compiled with the MSYS GCC.
  
  Closes https://github.com/curl/curl/pull/4512

- tests: add `connect to non-listen` keywords
  
  These tests try to connect to ports nothing is listening on.
  
  Closes https://github.com/curl/curl/pull/4511

- runtests: get textaware info from curl instead of perl
  
  The MSYS system on Windows can run the test suite for curl built with
  any toolset. When built with the MSYS GCC, curl uses Unix line endings,
  while it uses Windows line endings when built with the MinGW GCC, and
  `^O` reports 'msys' in both cases. Use the curl executable itself to
  determine the line endings instead, which reports 'x86_64-pc-msys' when
  built with the MSYS GCC.
  
  Closes https://github.com/curl/curl/pull/4506

Daniel Stenberg (20 Oct 2019)
- [Michał Janiszewski brought this change]

  appveyor: Add MSVC ARM64 build
  
  Closes #4507

- http2_recv: a closed stream trumps pause state
  
  ... and thus should return 0, not EAGAIN.
  
  Reported-by: Tom van der Woerdt
  Fixes #4496
  Closes #4505

- http2: expire a timeout at end of stream
  
  To make sure that transfer is being dealt with. Streams without
  Content-Length need a final read to notice the end-of-stream state.
  
  Reported-by: Tom van der Woerdt
  Fixes #4496

Dan Fandrich (18 Oct 2019)
- travis: Add an ARM64 build
  
  Test 323 is failing for some reason, so disable it there for now.

Marcel Raad (18 Oct 2019)
- examples/sslbackend: fix -Wchar-subscripts warning
  
  With the `isdigit` implementation that comes with MSYS2, the argument
  is used as an array subscript, resulting in a -Wchar-subscripts
  warning. `isdigit`'s behavior is undefined if the argument is negative
  and not EOF [0]. As done in lib/curl_ctype.h, cast the `char` variable
  to `unsigned char` to avoid that.
  
  [0] https://en.cppreference.com/w/c/string/byte/isdigit
  
  Closes https://github.com/curl/curl/pull/4503

Daniel Stenberg (18 Oct 2019)
- configure: remove all cyassl references
  
  In particular, this removes the case where configure would find an old
  cyall installation rather than a wolfssl one if present. The library is
  named wolfssl in modern days so there's no real need to keep support for
  the former.
  
  Reported-by: Jacob Barthelmeh
  Closes #4502

Marcel Raad (17 Oct 2019)
- test1162: disable MSYS2's POSIX path conversion
  
  This avoids MSYS2 converting the backslasb in the URL to a slash,
  causing the test to fail.

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

Jay Satiro (16 Oct 2019)
- CURLOPT_TIMEOUT.3: Clarify transfer timeout time includes queue time
  
  Prior to this change some users did not understand that the "request"
  starts when the handle is added to the multi handle, or probably they
  did not understand that some of those transfers may be queued and that
  time is included in timeout.
  
  Reported-by: Jeroen Ooms
  
  Fixes https://github.com/curl/curl/issues/4486
  Closes https://github.com/curl/curl/pull/4489

- [Stian Soiland-Reyes brought this change]

  tool_operate: Fix retry sleep time shown to user when Retry-After
  
  - If server header Retry-After is being used for retry sleep time then
    show that value to the user instead of the normal retry sleep time.
  
  This is a follow-up to 640b973 (7.66.0) which changed curl tool so that
  the value from Retry-After header overrides other retry timing options.
  
  Closes https://github.com/curl/curl/pull/4498

Daniel Stenberg (16 Oct 2019)
- url: normalize CURLINFO_EFFECTIVE_URL
  
  The URL extracted with CURLINFO_EFFECTIVE_URL was returned as given as
  input in most cases, which made it not get a scheme prefixed like before
  if the URL was given without one, and it didn't remove dotdot sequences
  etc.
  
  Added test case 1907 to verify that this now works as intended and as
  before 7.62.0.
  
  Regression introduced in 7.62.0
  
  Reported-by: Christophe Dervieux
  Fixes #4491
  Closes #4493

Marcel Raad (16 Oct 2019)
- tests: line ending fixes for Windows
  
  Mark some files as text.
  
  Closes https://github.com/curl/curl/pull/4490

- tests: use proxy feature
  
  This makes the tests succeed when using --disable-proxy.
  
  Closes https://github.com/curl/curl/pull/4488

- smbserver: fix Python 3 compatibility
  
  Python 2's `ConfigParser` module is spelled `configparser` in Python 3.
  
  Closes https://github.com/curl/curl/pull/4484

- security: silence conversion warning
  
  With MinGW-w64, `curl_socket_t` is is a 32 or 64 bit unsigned integer,
  while `read` expects a 32 bit signed integer.
  Use `sread` instead of `read` to use the correct parameter type.
  
  Closes https://github.com/curl/curl/pull/4483

- connect: silence sign-compare warning
  
  With MinGW-w64 using WinSock, `curl_socklen_t` is signed, while the
  result of `sizeof` is unsigned.
  
  Closes https://github.com/curl/curl/pull/4483

Daniel Stenberg (13 Oct 2019)
- TODO: Handle growing SFTP files
  
  Closes #4344

- KNOWN_BUGS: remove "CURLFORM_CONTENTLEN in an array"
  
  The curl_formadd() function is deprecated and shouldn't be used so the
  real fix for applications is to switch to the curl_mime_* API.

- KNOWN_BUGS: "LDAP on Windows does authentication wrong"
  
  Closes #3116

- appveyor: add a winbuild that uses VS2017
  
  Closes #4482

- [Harry Sintonen brought this change]

  socketpair: fix include and define for older TCP header systems
  
  fixed build for systems that need netinet/in.h for IPPROTO_TCP and are
  missing INADDR_LOOPBACK
  
  Closes #4480

- socketpair: fix double-close in error case
  
  Follow-up to bc2dbef0afc08

- gskit: use the generic Curl_socketpair

- asyn-thread: make use of Curl_socketpair() where available

- socketpair: an implemention for Windows and more
  
  Curl_socketpair() is designed to be used and work everywhere if there's
  no native version or the native version isn't good enough.
  
  Closes #4466

- RELEASE-NOTES: synced

- connect: return CURLE_OPERATION_TIMEDOUT for errno == ETIMEDOUT
  
  Previosly all connect() failures would return CURLE_COULDNT_CONNECT, no
  matter what errno said.
  
  This makes for example --retry work on these transfer failures.
  
  Reported-by: Nathaniel J. Smith
  Fixes #4461
  Clsoes #4462

- cirrus: switch off blackhole status on the freebsd CI machines

- tests: use port 2 instead of 60000 for a safer non-listening port
  
  ... when the tests want "connection refused".

- KNOWN_BUGS: IDN tests failing on Windows
  
  Closes #3747

Dan Fandrich (9 Oct 2019)
- cirrus: Increase the git clone depth.
  
  If more commits are submitted to master between the time of triggering
  the first Cirrus build and the time the final build gets started, the
  desired commit is no longer at HEAD and the build will error out.
  [skip ci]

Daniel Stenberg (9 Oct 2019)
- docs: make sure the --no-progress-meter docs file is in dist too

- docs: document it as --no-progress-meter instead of the reverse
  
  Follow-up to 93373a960c3bb4
  
  Reported-by: infinnovation-dev on github
  Fixes #4474
  Closes #4475

Dan Fandrich (9 Oct 2019)
- cirrus: Switch the FreeBSD 11.x build to 11.3 and add a 13.0 build.
  
  Also, select the images using image_family to get the latest snapshots
  automatically.
  [skip ci]

Daniel Stenberg (8 Oct 2019)
- curl: --no-progress-meter
  
  New option that allows a user to ONLY switch off curl's progress meter
  and leave everything else in "talkative" mode.
  
  Reported-by: Piotr Komborski
  Fixes #4422
  Closes #4470

- TODO: Consult %APPDATA% also for .netrc
  
  Closes #4016

- CURLOPT_TIMEOUT.3: remove the mention of "minutes"
  
  ... just say that limiting operations risk aborting otherwise fine
  working transfers. If that means seconds, minutes or hours, we leave to
  the user.
  
  Reported-by: Martin Gartner
  Closes #4469

- [Andrei Valeriu BICA brought this change]

  docs: added multi-event.c example
  
  Similar to multi-uv.c but using libevent 2. This is a simpler libevent
  integration example then hiperfifo.c.
  
  Closes #4471

Jay Satiro (5 Oct 2019)
- [Nicolas brought this change]

  ldap: fix OOM error on missing query string
  
  - Allow missing queries, don't return NO_MEMORY error in such a case.
  
  It is acceptable for there to be no specified query string, for example:
  
  curl ldap://ldap.forumsys.com
  
  A regression bug in 1b443a7 caused this issue.
  
  This is a partial fix for #4261.
  
  Bug: https://github.com/curl/curl/issues/4261#issuecomment-525543077
  Reported-by: Jojojov@users.noreply.github.com
  Analyzed-by: Samuel Surtees
  
  Closes https://github.com/curl/curl/pull/4467

- [Paul B. Omta brought this change]

  build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines
  
  Closes https://github.com/curl/curl/pull/4460

Daniel Stenberg (5 Oct 2019)
- RELEASE-NOTES: synced

- [Stian Soiland-Reyes brought this change]

  curl: ensure HTTP 429 triggers --retry
  
  This completes #3794.
  
  Also make sure the new tests from #4195 are enabled
  
  Closes #4465

Marcel Raad (4 Oct 2019)
- [apique brought this change]

  winbuild: add ENABLE_UNICODE option
  
  Fixes https://github.com/curl/curl/issues/4308
  Closes https://github.com/curl/curl/pull/4309

Daniel Stenberg (4 Oct 2019)
- ngtcp2: adapt to API change
  
  Closes #4457

- cookies: change argument type for Curl_flush_cookies
  
  The second argument is really a 'bool' so use that and pass in TRUE/FALSE
  to make it clear.
  
  Closes #4455

- http2: move state-init from creation to pre-transfer
  
  To make sure that the HTTP/2 state is initialized correctly for
  duplicated handles. It would otherwise easily generate "spurious"
  PRIORITY frames to get sent over HTTP/2 connections when duplicated easy
  handles were used.
  
  Reported-by: Daniel Silverstone
  Fixes #4303
  Closes #4442

- urlapi: fix use-after-free bug
  
  Follow-up from 2c20109a9b5d04
  
  Added test 663 to verify.
  
  Reported by OSS-Fuzz
  Bug: https://crbug.com/oss-fuzz/17954
  
  Closes #4453

- [Paul Dreik brought this change]

  cookie: avoid harmless use after free
  
  This fix removes a use after free which can be triggered by
  the internal cookie fuzzer, but otherwise is probably
  impossible to trigger from an ordinary application.
  
  The following program reproduces it:
  
          curl_global_init(CURL_GLOBAL_DEFAULT);
          CURL*  handle=curl_easy_init();
          CookieInfo* info=Curl_cookie_init(handle,NULL,NULL,false);
          curl_easy_setopt(handle, CURLOPT_COOKIEJAR, "/dev/null");
          Curl_flush_cookies(handle, true);
          Curl_cookie_cleanup(info);
          curl_easy_cleanup(handle);
          curl_global_cleanup();
  
  This was found through fuzzing.
  
  Closes #4454

- [Denis Chaplygin brought this change]

  docs: add note on failed handles not being counted by curl_multi_perform
  
  Closes #4446

- CURLMOPT_MAX_CONCURRENT_STREAMS.3: fix SEE ALSO typo

- [Niall brought this change]

  ESNI: initial build/setup
  
  Closes #4011

- RELEASE-NOTES: synced

- redirect: when following redirects to an absolute URL, URL encode it
  
  ... to make it handle for example (RFC violating) embeded spaces.
  
  Reported-by: momala454 on github
  Fixes #4445
  Closes #4447

- urlapi: fix URL encoding when setting a full URL

- tool_operate: rename functions to make more sense

- curl: create easy handles on-demand and not ahead of time
  
  This should again enable crazy-large download ranges of the style
  [1-10000000] that otherwise easily ran out of memory starting in 7.66.0
  when this new handle allocating scheme was introduced.
  
  Reported-by: Peter Sumatra
  Fixes #4393
  Closes #4438

- [Kunal Ekawde brought this change]

  CURLMOPT_MAX_CONCURRENT_STREAMS: new setopt
  
  Closes #4410

- chunked-encoding: stop hiding the CURLE_BAD_CONTENT_ENCODING error
  
  Unknown content-encoding would get returned as CURLE_WRITE_ERROR if the
  response is chunked-encoded.
  
  Reported-by: Ilya Kosarev
  Fixes #4310
  Closes #4449

Marcel Raad (1 Oct 2019)
- checksrc: fix uninitialized variable warning
  
  The loop doesn't need to be executed without a file argument.
  
  Closes https://github.com/curl/curl/pull/4444

- urlapi: fix unused variable warning
  
  `dest` is only used with `ENABLE_IPV6`.
  
  Closes https://github.com/curl/curl/pull/4444

- lib: silence conversion warnings
  
  Closes https://github.com/curl/curl/pull/4444

- AppVeyor: add 32-bit MinGW-w64 build
  
  With WinSSL and testing enabled so that it would have detected most of
  the warnings fixed in [0] and [1].
  
  [0] https://github.com/curl/curl/pull/4398
  [1] https://github.com/curl/curl/pull/4415
  
  Closes https://github.com/curl/curl/pull/4433

- AppVeyor: remove MSYS2_ARG_CONV_EXCL for winbuild
  
  It's only used for MSYS2 with MinGW.
  
  Closes

Daniel Stenberg (30 Sep 2019)
- [Emil Engler brought this change]

  git: add tests/server/disabled to .gitignore
  
  Closes #4441

- altsvc: accept quoted ma and persist values
  
  As mandated by the spec. Test 1654 is extended to verify.
  
  Closes #4443

- mailmap: a Lucas fix

Alessandro Ghedini (29 Sep 2019)
- [Lucas Pardue brought this change]

  quiche: update HTTP/3 config creation to new API

Daniel Stenberg (29 Sep 2019)
- BINDINGS: PureBasic, Net::Curl for perl and Nim

- BINDINGS: Kapito is an Erlang library, basically a binding

- BINDINGS: added clj-curl
  
  Reported-by: Lucas Severo

- [Jay Satiro brought this change]

  docs: disambiguate CURLUPART_HOST is for host name (ie no port)
  
  Closes #4424

- cookies: using a share with cookies shouldn't enable the cookie engine
  
  The 'share object' only sets the storage area for cookies. The "cookie
  engine" still needs to be enabled or activated using the normal cookie
  options.
  
  This caused the curl command line tool to accidentally use cookies
  without having been told to, since curl switched to using shared cookies
  in 7.66.0.
  
  Test 1166 verifies
  
  Updated test 506
  
  Fixes #4429
  Closes #4434

- setopt: handle ALTSVC set to NULL

- RELEASE-NOTES: synced

- [grdowns brought this change]

  INSTALL: add vcpkg installation instructions
  
  Closes #4435

- [Zenju brought this change]

  FTP: add test for FTPFILE_NOCWD: Avoid redundant CWDs
  
  Add libtest 661
  
  Closes #4417

- [Zenju brought this change]

  FTP: url-decode path before evaluation
  
  Closes #4428

Marcel Raad (27 Sep 2019)
- tests: fix narrowing conversion warnings
  
  `timediff_t` is 64 bits wide also on 32-bit systems since
  commit b1616dad8f0.
  
  Closes https://github.com/curl/curl/pull/4415

Jay Satiro (27 Sep 2019)
- [julian brought this change]

  vtls: Fix comment typo about macosx-version-min compiler flag
  
  Closes https://github.com/curl/curl/pull/4425

Daniel Stenberg (26 Sep 2019)
- [Yechiel Kalmenson brought this change]

  README: minor grammar fix
  
  Closes #4431

- [Spezifant brought this change]

  HTTP3: fix prefix parameter for ngtcp2 build
  
  Closes #4430

- quiche: don't close connection at end of stream!

- quiche: set 'drain' when returning without having drained the queues

- Revert "FTP: url-decode path before evaluation"
  
  This reverts commit 2f036a72d543e96128bd75cb0fedd88815fd42e2.

- HTTP3: merged and simplified the two 'running' sections

- HTTP3: show an --alt-svc using example too

- [Zenju brought this change]

  FTP: url-decode path before evaluation
  
  Closes #4423

- openssl: use strerror on SSL_ERROR_SYSCALL
  
  Instead of showing the somewhat nonsensical errno number, use strerror()
  to provide a more relatable error message.
  
  Closes #4411

- HTTP3: update quic.aiortc.org + add link to server list
  
  Reported-by: Jeremy Lainé

Jay Satiro (26 Sep 2019)
- url: don't set appconnect time for non-ssl/non-ssh connections
  
  Prior to this change non-ssl/non-ssh connections that were reused set
  TIMER_APPCONNECT [1]. Arguably that was incorrect since no SSL/SSH
  handshake took place.
  
  [1]: TIMER_APPCONNECT is publicly known as CURLINFO_APPCONNECT_TIME in
  libcurl and %{time_appconnect} in the curl tool. It is documented as
  "the time until the SSL/SSH handshake is completed".
  
  Reported-by: Marcel Hernandez
  
  Ref: https://github.com/curl/curl/issues/3760
  
  Closes https://github.com/curl/curl/pull/3773

Daniel Stenberg (25 Sep 2019)
- ngtcp2: remove fprintf() calls
  
  - convert some of them to H3BUF() calls to infof()
  - remove some of them completely
  - made DEBUG_HTTP3 defined only if CURLDEBUG is set for now
  
  Closes #4421

- [Jay Satiro brought this change]

  url: fix the NULL hostname compiler warning case
  
  Closes #4403

- [Jay Satiro brought this change]

  travis: move the go install to linux-only
  
  ... to repair the build again
  Closes #4403

- altsvc: correct the #ifdef for the ngtcp2 backend

- altsvc: save h3 as h3-23
  
  Follow-up to d176a2c7e5

- urlapi: question mark within fragment is still fragment
  
  The parser would check for a query part before fragment, which caused it
  to do wrong when the fragment contains a question mark.
  
  Extended test 1560 to verify.
  
  Reported-by: Alex Konev
  Fixes #4412
  Closes #4413

- [Alex Samorukov brought this change]

  HTTP3.md: move -p for mkdir, remove -j for make
  
  - mkdir on OSX/Darwin requires `-p` argument before dir
  
  - portabbly figuring out number of cores is an exercise for somewhere
    else
  
  Closes #4407

Patrick Monnerat (24 Sep 2019)
- os400: getpeername() and getsockname() return ebcdic AF_UNIX sockaddr,
  
  As libcurl now uses these 2 system functions, wrappers are needed on os400
  to convert returned AF_UNIX sockaddrs to ascii.
  
  This is a follow-up to commit 7fb54ef.
  See also #4037.
  Closes #4214

Jay Satiro (24 Sep 2019)
- [Lucas Pardue brought this change]

  strcase: fix raw lowercasing the letter X
  
  Casing mistake in Curl_raw_tolower 'X' wasn't lowercased as 'x' prior to
  this change.
  
  Follow-up to 0023fce which added the function several days ago.
  
  Ref: https://github.com/curl/curl/pull/4401#discussion_r327396546
  
  Closes https://github.com/curl/curl/pull/4408

Daniel Stenberg (23 Sep 2019)
- http2: Expression 'stream->stream_id != - 1' is always true
  
  PVS-Studio warning
  Fixes #4402

- http2: A value is being subtracted from the unsigned variable
  
  PVS-Studio warning
  Fixes #4402

- libssh: part of conditional expression is always true: !result
  
  PVS-Studio warning
  Fixed #4402

- libssh: part of conditional expression is always true
  
  PVS-Studio warning
  Fixes #4402

- libssh: The expression is excessive or contains a misprint
  
  PVS-Studio warning
  Fixes #4402

- quiche: The expression must be surrounded by parentheses
  
  PVS-Studio warning
  Fixes #4402

- vauth: The parameter 'status' must be surrounded by parentheses
  
  PVS-Studio warning
  Fixes #4402

- [Paul Dreik brought this change]

  doh: allow only http and https in debug mode
  
  Otherwise curl may be told to use for instance pop3 to
  communicate with the doh server, which most likely
  is not what you want.
  
  Found through fuzzing.
  
  Closes #4406

- [Paul Dreik brought this change]

  doh: return early if there is no time left
  
  Closes #4406

- [Barry Pollard brought this change]

  http: lowercase headernames for HTTP/2 and HTTP/3
  
  Closes #4401
  Fixes #4400

Marcel Raad (23 Sep 2019)
- vtls: fix narrowing conversion warnings
  
  Curl_timeleft returns `timediff_t`, which is 64 bits wide also on
  32-bit systems since commit b1616dad8f0.
  
  Closes https://github.com/curl/curl/pull/4398

Daniel Stenberg (23 Sep 2019)
- [Joel Depooter brought this change]

  winbuild: Add manifest to curl.exe for proper OS version detection
  
  This is a small fix to commit ebd213270a017a6830928ee2e1f4a9cabc799898
  in pull request #1221. That commit added the CURL_EMBED_MANIFEST flag to
  CURL_RC_FLAGS. However, later in the file CURL_RC_FLAGS is
  overwritten. The fix is to append values to CURL_RC_FLAGS instead of
  overwriting
  
  Closes #4399

- RELEASE-NOTES: synced

Marcel Raad (22 Sep 2019)
- openssl: fix compiler warning with LibreSSL
  
  It was already fixed for BoringSSL in commit a0f8fccb1e0.
  LibreSSL has had the second argument to SSL_CTX_set_min_proto_version
  as uint16_t ever since the function was added in [0].
  
  [0] https://github.com/libressl-portable/openbsd/commit/56f107201baefb5533486d665a58d8f57fd3aeda
  
  Closes https://github.com/curl/curl/pull/4397

Daniel Stenberg (22 Sep 2019)
- curl: exit the create_transfers loop on errors
  
  When looping around the ranges and given URLs to create transfers, all
  errors should exit the loop and return. Previously it would keep
  looping.
  
  Reported-by: SumatraPeter on github
  Bug: #4393
  Closes #4396

Jay Satiro (21 Sep 2019)
- socks: Fix destination host shown on SOCKS5 error
  
  Prior to this change when a server returned a socks5 connect error then
  curl would parse the destination address:port from that data and show it
  to the user as the destination:
  
  curld -v --socks5 10.0.3.1:1080 http://google.com:99
  * SOCKS5 communication to google.com:99
  * SOCKS5 connect to IPv4 172.217.12.206 (locally resolved)
  * Can't complete SOCKS5 connection to 253.127.0.0:26673. (1)
  curl: (7) Can't complete SOCKS5 connection to 253.127.0.0:26673. (1)
  
  That's incorrect because the address:port included in the connect error
  is actually a bind address:port (typically unused) and not the
  destination address:port. This fix changes curl to show the destination
  information that curl sent to the server instead:
  
  curld -v --socks5 10.0.3.1:1080 http://google.com:99
  * SOCKS5 communication to google.com:99
  * SOCKS5 connect to IPv4 172.217.7.14:99 (locally resolved)
  * Can't complete SOCKS5 connection to 172.217.7.14:99. (1)
  curl: (7) Can't complete SOCKS5 connection to 172.217.7.14:99. (1)
  
  curld -v --socks5-hostname 10.0.3.1:1080 http://google.com:99
  * SOCKS5 communication to google.com:99
  * SOCKS5 connect to google.com:99 (remotely resolved)
  * Can't complete SOCKS5 connection to google.com:99. (1)
  curl: (7) Can't complete SOCKS5 connection to google.com:99. (1)
  
  Ref: https://tools.ietf.org/html/rfc1928#section-6
  
  Closes https://github.com/curl/curl/pull/4394

Daniel Stenberg (21 Sep 2019)
- travis: enable ngtcp2 h3-23 builds

- altsvc: both backends run h3-23 now
  
  Closes #4395

- http: fix warning on conversion from int to bit
  
  Follow-up from 03ebe66d70

- urldata: use 'bool' for the bit type on MSVC compilers
  
  Closes #4387
  Fixes #4379

- appveyor: upgrade VS2017 to VS2019
  
  Closes #4383

- [Zenju brought this change]

  FTP: FTPFILE_NOCWD: avoid redundant CWDs
  
  Closes #4382

- cookie: pass in the correct cookie amount to qsort()
  
  As the loop discards cookies without domain set. This bug would lead to
  qsort() trying to sort uninitialized pointers. We have however not found
  it a security problem.
  
  Reported-by: Paul Dreik
  Closes #4386

- [Paul Dreik brought this change]

  urlapi: avoid index underflow for short ipv6 hostnames
  
  If the input hostname is "[", hlen will underflow to max of size_t when
  it is subtracted with 2.
  
  hostname[hlen] will then cause a warning by ubsanitizer:
  
  runtime error: addition of unsigned offset to 0x<snip> overflowed to
  0x<snip>
  
  I think that in practice, the generated code will work, and the output
  of hostname[hlen] will be the first character "[".
  
  This can be demonstrated by the following program (tested in both clang
  and gcc, with -O3)
  
  int main() {
    char* hostname=strdup("[");
    size_t hlen = strlen(hostname);
  
    hlen-=2;
    hostname++;
    printf("character is %d\n",+hostname[hlen]);
    free(hostname-1);
  }
  
  I found this through fuzzing, and even if it seems harmless, the proper
  thing is to return early with an error.
  
  Closes #4389

- [Tatsuhiro Tsujikawa brought this change]

  ngtcp2: compile with latest ngtcp2 + nghttp3 draft-23
  
  Closes #4392

- THANKS-filter: deal with my typos 'Jat' => 'Jay'

- travis: use go master
  
  ... as the boringssl builds needs a very recent version
  
  Co-authored-by: Jat Satiro
  Closes #4361

- tool_operate: removed unused variable 'done'
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- tool_operate: Expression 'config->resume_from' is always true
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- tool_getparam: remove duplicate switch case
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- libssh2: part of conditional expression is always true: !result
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- urlapi: Expression 'storep' is always true
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- urlapi: 'scheme' is always true
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- urlapi: part of conditional expression is always true: (relurl[0] == '/')
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- setopt: store CURLOPT_RTSP_SERVER_CSEQ correctly
  
  Fixes bug detected by PVS-Studio
  Fixes #4374

- mime: make Curl_mime_duppart() assert if called without valid dst
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- http_proxy: part of conditional expression is always true: !error
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- imap: merged two case-branches performing the same action
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- multi: value '2L' is assigned to a boolean
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- easy: part of conditional expression is always true: !result
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- netrc: part of conditional expression is always true: !done
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- version: Expression 'left > 1' is always true
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- url: remove dead code
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- url: part of expression is always true: (bundle->multiuse == 0)
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- ftp: the conditional expression is always true
  
  ... both !result and (ftp->transfer != FTPTRANSFER_BODY)!
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- ftp: Expression 'ftpc->wait_data_conn' is always false
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- ftp: Expression 'ftpc->wait_data_conn' is always true
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- ftp: part of conditional expression is always true: !result
  
  Fixes warning detected by PVS-Studio
  Fixes #4374

- http: fix Expression 'http->postdata' is always false
  
  Fixes warning detected by PVS-Studio
  Fixes #4374
  Reported-by: Valerii Zapodovnikov

- [Niall O'Reilly brought this change]

  doh: avoid truncating DNS QTYPE to lower octet
  
  Closes #4381

- [Jens Finkhaeuser brought this change]

  urlapi: CURLU_NO_AUTHORITY allows empty authority/host part
  
  CURLU_NO_AUTHORITY is intended for use with unknown schemes (i.e. not
  "file:///") to override cURL's default demand that an authority exists.
  
  Closes #4349

- version: next release will be 7.67.0

- RELEASE-NOTES: synced

- url: only reuse TLS connections with matching pinning
  
  If the requests have different CURLOPT_PINNEDPUBLICKEY strings set, the
  connection should not be reused.
  
  Bug: https://curl.haxx.se/mail/lib-2019-09/0061.html
  Reported-by: Sebastian Haglund
  
  Closes #4347

- README: add OSS-Fuzz badge [skip ci]
  
  Closes #4380

Michael Kaufmann (18 Sep 2019)
- http: merge two "case" statements

Daniel Stenberg (18 Sep 2019)
- [Zenju brought this change]

  FTP: remove trailing slash from path for LIST/MLSD
  
  Closes #4348

- mime: when disabled, avoid C99 macro
  
  Closes #4368

- url: cleanup dangling DOH request headers too
  
  Follow-up to 9bc44ff64d9081
  
  Credit to OSS-Fuzz
  Bug: https://crbug.com/oss-fuzz/17269
  
  Closes #4372

- [Christoph M. Becker brought this change]

  http2: relax verification of :authority in push promise requests
  
  If the :authority pseudo header field doesn't contain an explicit port,
  we assume it is valid for the default port, instead of rejecting the
  request for all ports.
  
  Ref: https://curl.haxx.se/mail/lib-2019-09/0041.html
  
  Closes #4365

- doh: clean up dangling DOH handles and memory on easy close
  
  If you set the same URL for target as for DoH (and it isn't a DoH
  server), like "https://example.com" in both, the easy handles used for
  the DoH requests could be left "dangling" and end up not getting freed.
  
  Reported-by: Paul Dreik
  Closes #4366

- unit1655: make it C90 compliant
  
  Unclear why this was not detected in the CI.
  
  Follow-up to b7666027296a

- smb: check for full size message before reading message details
  
  To avoid reading of uninitialized data.
  
  Assisted-by: Max Dymond
  Bug: https://crbug.com/oss-fuzz/16907
  Closes #4363

- quiche: persist connection details
  
  ... like we do for other protocols at connect time. This makes "curl -I"
  and other things work.
  
  Reported-by: George Liu
  Fixes #4358
  Closes #4360

- openssl: fix warning with boringssl and SSL_CTX_set_min_proto_version
  
  Follow-up to ffe34b7b59
  Closes #4359

- [Paul Dreik brought this change]

  doh: fix undefined behaviour and open up for gcc and clang optimization
  
  The undefined behaviour is annoying when running fuzzing with
  sanitizers. The codegen is the same, but the meaning is now not up for
  dispute. See https://cppinsights.io/s/516a2ff4
  
  By incrementing the pointer first, both gcc and clang recognize this as
  a bswap and optimizes it to a single instruction.  See
  https://godbolt.org/z/994Zpx
  
  Closes #4350

- [Paul Dreik brought this change]

  doh: fix (harmless) buffer overrun
  
  Added unit test case 1655 to verify.
  Close #4352
  
  the code correctly finds the flaws in the old code,
  if one temporarily restores doh.c to the old version.

Alessandro Ghedini (15 Sep 2019)
- docs: remove trailing ':' from section names in CURLOPT_TRAILER* man

- docs: fix typo in CURLOPT_HTTP_VERSION man

GitHub (14 Sep 2019)
- [Daniel Stenberg brought this change]

  CI: inintial github action job
  
  First shot at a CI build on github actions

Daniel Stenberg (13 Sep 2019)
- appveyor: add a winbuild
  
  Assisted-by: Marcel Raad
  Assisted-by: Jay Satiro
  
  Closes #4324

- FTP: allow "rubbish" prepended to the SIZE response
  
  This is a protocol violation but apparently there are legacy proprietary
  servers doing this.
  
  Added test 336 and 337 to verify.
  
  Reported-by: Philippe Marguinaud
  Closes #4339

- [Zenju brought this change]

  FTP: skip CWD to entry dir when target is absolute
  
  Closes #4332

Kamil Dudka (13 Sep 2019)
- curl: fix memory leaked by parse_metalink()
  
  This commit fixes a regression introduced by curl-7_65_3-5-gb88940850.
  Detected by tests 2005, 2008, 2009, 2010, 2011, and 2012 with valgrind
  and libmetalink enabled.
  
  Closes #4326

Daniel Stenberg (13 Sep 2019)
- parsedate: still provide the name arrays when disabled
  
  If FILE or FTP are enabled, since they also use them!
  
  Reported-by: Roland Hieber
  Fixes #4325
  Closes #4343

- [Gilles Vollant brought this change]

  curl:file2string: load large files much faster
  
  ... by using a more efficient realloc scheme.
  
  Bug: https://curl.haxx.se/mail/lib-2019-09/0045.html
  Closes #4336

- openssl: close_notify on the FTP data connection doesn't mean closure
  
  For FTPS transfers, curl gets close_notify on the data connection
  without that being a signal to close the control connection!
  
  Regression since 3f5da4e59a556fc (7.65.0)
  
  Reported-by: Zenju on github
  Reviewed-by: Jay Satiro
  Fixes #4329
  Closes #4340

- [Jimmy Gaussen brought this change]

  docs/HTTP3: fix `--with-ssl` ngtcp2 configure flag
  
  Closes #4338

- RELEASE-NOTES: synced

- curlver: bump to 7.66.1

- [Zenju brought this change]

  setopt: make it easier to add new enum values
  
  ... by using the *_LAST define names better.
  
  Closes #4321

- asyn-thread: s/AF_LOCAL/AF_UNIX for Solaris
  
  Reported-by: Dagobert Michelsen
  Fixes #4328
  Closes #4333

- [Bernhard Walle brought this change]

  winbuild/MakefileBuild.vc: Add vssh
  
  Without that modification, the Windows build using the makefiles doesn't
  work.
  
  Signed-off-by: Bernhard Walle <bernhard.walle@posteo.eu>
  
  Fixes #4322
  Closes #4323

Bernhard Walle (11 Sep 2019)
- winbuild/MakefileBuild.vc: Fix line endings
  
  The file had mixed line endings.
  
  Signed-off-by: Bernhard Walle <bernhard.walle@posteo.eu>

Jay Satiro (11 Sep 2019)
- ldap: Stop using wide char version of ldapp_err2string
  
  Despite ldapp_err2string being documented by MS as returning a
  PCHAR (char *), when UNICODE it is mapped to ldap_err2stringW and
  returns PWCHAR (wchar_t *).
  
  We have lots of code that expects ldap_err2string to return char *,
  most of it failf used like this:
  
  failf(data, "LDAP local: Some error: %s", ldap_err2string(rc));
  
  Closes https://github.com/curl/curl/pull/4272

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

................................................................................
  
  The problem can be reproduced as follows:
  
   % curl --reso<TAB>
   % curl -E <TAB>
  
  Bug: https://bugs.debian.org/921452









































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Changes to jni/curl/CMake/CurlTests.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  Project                     ___| | | |  _ \| |
 *                             / __| | | | |_) | |
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
 *
 * This software is licensed as described in the file COPYING, which
 * you should have received as part of this distribution. The terms
 * are also available at https://curl.haxx.se/docs/copyright.html.
 *
 * You may opt to use, copy, modify, merge, publish, distribute and/or sell
 * copies of the Software, and permit persons to whom the Software is







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/CMake/Platforms/WindowsCache.cmake.

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    set(HAVE_LIBDL 0)
    set(HAVE_LIBUCB 0)
    set(HAVE_LIBSOCKET 0)
    set(NOT_NEED_LIBNSL 0)
    set(HAVE_LIBNSL 0)
    set(HAVE_GETHOSTNAME 1)
    set(HAVE_LIBZ 0)
    set(HAVE_LIBCRYPTO 0)

    set(HAVE_DLOPEN 0)

    set(HAVE_ALLOCA_H 0)
    set(HAVE_ARPA_INET_H 0)
    set(HAVE_DLFCN_H 0)
    set(HAVE_FCNTL_H 1)







<







3
4
5
6
7
8
9

10
11
12
13
14
15
16
    set(HAVE_LIBDL 0)
    set(HAVE_LIBUCB 0)
    set(HAVE_LIBSOCKET 0)
    set(NOT_NEED_LIBNSL 0)
    set(HAVE_LIBNSL 0)
    set(HAVE_GETHOSTNAME 1)
    set(HAVE_LIBZ 0)


    set(HAVE_DLOPEN 0)

    set(HAVE_ALLOCA_H 0)
    set(HAVE_ARPA_INET_H 0)
    set(HAVE_DLFCN_H 0)
    set(HAVE_FCNTL_H 1)

Changes to jni/curl/CMakeLists.txt.

343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
  list(APPEND CURL_LIBS "${COREFOUNDATION_FRAMEWORK}" "${SECURITY_FRAMEWORK}")
endif()

if(CMAKE_USE_OPENSSL)
  find_package(OpenSSL REQUIRED)
  set(SSL_ENABLED ON)
  set(USE_OPENSSL ON)
  set(HAVE_LIBCRYPTO ON)
  set(HAVE_LIBSSL ON)

  # Depend on OpenSSL via imported targets if supported by the running
  # version of CMake.  This allows our dependents to get our dependencies
  # transitively.
  if(NOT CMAKE_VERSION VERSION_LESS 3.4)
    list(APPEND CURL_LIBS OpenSSL::SSL OpenSSL::Crypto)
  else()







<
<







343
344
345
346
347
348
349


350
351
352
353
354
355
356
  list(APPEND CURL_LIBS "${COREFOUNDATION_FRAMEWORK}" "${SECURITY_FRAMEWORK}")
endif()

if(CMAKE_USE_OPENSSL)
  find_package(OpenSSL REQUIRED)
  set(SSL_ENABLED ON)
  set(USE_OPENSSL ON)



  # Depend on OpenSSL via imported targets if supported by the running
  # version of CMake.  This allows our dependents to get our dependencies
  # transitively.
  if(NOT CMAKE_VERSION VERSION_LESS 3.4)
    list(APPEND CURL_LIBS OpenSSL::SSL OpenSSL::Crypto)
  else()

Changes to jni/curl/Makefile.in.

688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
...
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
  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      \
  mime.c sha256.c setopt.c curl_path.c curl_ctype.c curl_range.c psl.c  \
  doh.c urlapi.c curl_get_line.c altsvc.c

LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
  formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h         \
  speedcheck.h urldata.h curl_ldap.h escape.h telnet.h getinfo.h        \
  strcase.h curl_sec.h memdebug.h http_chunks.h curl_fnmatch.h          \
  wildcard.h fileinfo.h ftplistparser.h strtok.h connect.h llist.h      \
  hash.h content_encoding.h share.h curl_md4.h curl_md5.h http_digest.h \
................................................................................
  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)







|







 







|







688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
...
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
  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      \
  mime.c sha256.c setopt.c curl_path.c curl_ctype.c curl_range.c psl.c  \
  doh.c urlapi.c curl_get_line.c altsvc.c socketpair.c

LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
  formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h         \
  speedcheck.h urldata.h curl_ldap.h escape.h telnet.h getinfo.h        \
  strcase.h curl_sec.h memdebug.h http_chunks.h curl_fnmatch.h          \
  wildcard.h fileinfo.h ftplistparser.h strtok.h connect.h llist.h      \
  hash.h content_encoding.h share.h curl_md4.h curl_md5.h http_digest.h \
................................................................................
  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 socketpair.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)

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
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









































|

|
|


|



|
|
|
<
<
<



>
>
>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>








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





|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
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
curl and libcurl 7.67.0

 Public curl releases:         186
 Command line options:         226
 curl_easy_setopt() options:   269
 Public functions in libcurl:  81
 Contributors:                 2056

This release includes the following changes:

 o curl: added --no-progress-meter [73]
 o setopt: CURLMOPT_MAX_CONCURRENT_STREAMS is new [55]
 o urlapi: CURLU_NO_AUTHORITY allows empty authority/host part [22]




This release includes the following bugfixes:

 o BINDINGS: five new bindings addded
 o CURLOPT_TIMEOUT.3: Clarify transfer timeout time includes queue time [78]
 o CURLOPT_TIMEOUT.3: remove the mention of "minutes" [74]
 o ESNI: initial build/setup support [71]
 o FTP: FTPFILE_NOCWD: avoid redundant CWDs [28]
 o FTP: allow "rubbish" prepended to the SIZE response [15]
 o FTP: remove trailing slash from path for LIST/MLSD [6]
 o FTP: skip CWD to entry dir when target is absolute [16]
 o FTP: url-decode path before evaluation [36]
 o HTTP3.md: move -p for mkdir, remove -j for make [46]
 o HTTP3: fix invalid use of sendto for connected UDP socket [109]
 o HTTP3: fix ngtcp2 Windows build [93]
 o HTTP3: fix prefix parameter for ngtcp2 build [40]
 o HTTP3: fix typo somehere1 > somewhere1 [108]
 o HTTP3: show an --alt-svc using example too
 o INSTALL: add missing space for configure commands [106]
 o INSTALL: add vcpkg installation instructions [35]
 o README: minor grammar fix [39]
 o altsvc: accept quoted ma and persist values [60]
 o altsvc: both backends run h3-23 now [31]
 o appveyor: Add MSVC ARM64 build [87]
 o appveyor: Use two parallel compilation on appveyor with CMake [98]
 o appveyor: add --disable-proxy autotools build [94]
 o appveyor: add 32-bit MinGW-w64 build [58]
 o appveyor: add a winbuild [14]
 o appveyor: add a winbuild that uses VS2017 [84]
 o appveyor: make winbuilds with DEBUG=no/yes and VS 2015/2017 [95]
 o appveyor: publish artifacts on appveyor [105]
 o appveyor: upgrade VS2017 to VS2019 [29]
 o asyn-thread: make use of Curl_socketpair() where available [85]
 o asyn-thread: s/AF_LOCAL/AF_UNIX for Solaris [3]
 o build: Remove unused HAVE_LIBSSL and HAVE_LIBCRYPTO defines [77]
 o checksrc: fix uninitialized variable warning [57]
 o chunked-encoding: stop hiding the CURLE_BAD_CONTENT_ENCODING error [56]
 o cirrus: Increase the git clone depth
 o cirrus: Switch the FreeBSD 11.x build to 11.3 and add a 13.0 build
 o cirrus: switch off blackhole status on the freebsd CI machines [72]
 o cleanups: 21 various PVS-Studio warnings [24]
 o configure: only say ipv6 enabled when the variable is set [110]
 o configure: remove all cyassl references [90]
 o conn-reuse: requests wanting NTLM can reuse non-NTLM connections [99]
 o connect: return CURLE_OPERATION_TIMEDOUT for errno == ETIMEDOUT [72]
 o connect: silence sign-compare warning [83]
 o cookie: avoid harmless use after free [69]
 o cookie: pass in the correct cookie amount to qsort() [27]
 o cookies: change argument type for Curl_flush_cookies [67]
 o cookies: using a share with cookies shouldn't enable the cookie engine [63]
 o copyrights: update copyright notices to 2019 [101]
 o curl: create easy handles on-demand and not ahead of time [54]
 o curl: ensure HTTP 429 triggers --retry [64]
 o curl: exit the create_transfers loop on errors [33]
 o curl: fix memory leaked by parse_metalink() [17]
 o curl: load large files with -d @ much faster [19]
 o docs/HTTP3: fix `--with-ssl` ngtcp2 configure flag [21]
 o docs: added multi-event.c example [75]
 o docs: disambiguate CURLUPART_HOST is for host name (ie no port) [62]
 o docs: note on failed handles not being counted by curl_multi_perform [70]
 o doh: allow only http and https in debug mode [48]
 o doh: avoid truncating DNS QTYPE to lower octet [23]
 o doh: clean up dangling DOH memory on easy close [9]
 o doh: fix (harmless) buffer overrun [13]
 o doh: fix undefined behaviour and open up for gcc and clang optimization [12]
 o doh: return early if there is no time left [48]
 o examples/sslbackend: fix -Wchar-subscripts warning [89]
 o examples: remove the "this exact code has not been verified"
 o git: add tests/server/disabled to .gitignore [59]
 o gnutls: make gnutls_bye() not wait for response on shutdown [104]
 o http2: expire a timeout at end of stream [88]
 o http2: prevent dup'ed handles to send dummy PRIORITY frames [68]
 o http2: relax verification of :authority in push promise requests [8]
 o http2_recv: a closed stream trumps pause state [88]
 o http: lowercase headernames for HTTP/2 and HTTP/3 [49]
 o ldap: Stop using wide char version of ldapp_err2string [1]
 o ldap: fix OOM error on missing query string [76]
 o mbedtls: add error message for cert validity starting in the future [102]
 o mime: when disabled, avoid C99 macro [7]
 o ngtcp2: adapt to API change [66]
 o ngtcp2: compile with latest ngtcp2 + nghttp3 draft-23 [25]
 o ngtcp2: remove fprintf() calls [43]
 o openssl: close_notify on the FTP data connection doesn't mean closure [20]
 o openssl: fix compiler warning with LibreSSL [34]
 o openssl: use strerror on SSL_ERROR_SYSCALL [41]
 o os400: getpeername() and getsockname() return ebcdic AF_UNIX sockaddr [47]
 o parsedate: fix date parsing disabled builds [18]
 o quiche: don't close connection at end of stream
 o quiche: persist connection details (fixes -I with --http3) [11]
 o quiche: set 'drain' when returning without having drained the queues
 o quiche: update HTTP/3 config creation to new API [61]
 o redirect: handle redirects to absolute URLs containing spaces [52]
 o runtests: get textaware info from curl instead of perl [86]
 o schannel: reverse the order of certinfo insertions [96]
 o schannel_verify: Fix concurrent openings of CA file [103]
 o security: silence conversion warning [83]
 o setopt: handle ALTSVC set to NULL
 o setopt: make it easier to add new enum values [4]
 o setopt: store CURLOPT_RTSP_SERVER_CSEQ correctly [24]
 o smb: check for full size message before reading message details [10]
 o smbserver: fix Python 3 compatibility [82]
 o socks: Fix destination host shown on SOCKS5 error [32]
 o test1162: disable MSYS2's POSIX path conversion
 o test1591: fix spelling of http feature [97]
 o tests: add `connect to non-listen` keywords [91]
 o tests: fix narrowing conversion warnings [37]
 o tests: fix the test 3001 cert failures [100]
 o tests: makes tests succeed when using --disable-proxy [81]
 o tests: use %FILE_PWD for file:// URLs [92]
 o tests: use port 2 instead of 60000 for a safer non-listening port [72]
 o tool_operate: Fix retry sleep time shown to user when Retry-After [79]
 o travis: Add an ARM64 build
 o url: Curl_free_request_state() should also free doh handles [107]
 o url: don't set appconnect time for non-ssl/non-ssh connections [42]
 o url: fix the NULL hostname compiler warning [44]
 o url: normalize CURLINFO_EFFECTIVE_URL [80]
 o url: only reuse TLS connections with matching pinning [5]
 o urlapi: avoid index underflow for short ipv6 hostnames [26]
 o urlapi: fix URL encoding when setting a full URL [53]
 o urlapi: fix unused variable warning [57]
 o urlapi: question mark within fragment is still fragment [45]
 o urldata: use 'bool' for the bit type on MSVC compilers [30]
 o vtls: Fix comment typo about macosx-version-min compiler flag [38]
 o vtls: fix narrowing conversion warnings [50]
 o winbuild/MakefileBuild.vc: Add vssh [2]
 o winbuild/MakefileBuild.vc: Fix line endings
 o winbuild: Add manifest to curl.exe for proper OS version detection [51]
 o winbuild: add ENABLE_UNICODE option [65]

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 Konev, Alex Samorukov, Andrei Valeriu BICA,









  Barry Pollard, Bastien Bouclet, Bernhard Walle, Bylon2 on github,
  Christophe Dervieux, Christoph M. Becker, Dagobert Michelsen, Dan Fandrich,
  Daniel Silverstone, Daniel Stenberg, Denis Chaplygin, Emil Engler,
  Francois Rivard, George Liu, Gilles Vollant, Griffin Downs, Harry Sintonen,
  Ilya Kosarev, infinnovation-dev on github, Jacob Barthelmeh, Javier Blazquez,
  Jens Finkhaeuser, Jeremy Lainé, Jeroen Ooms, Jimmy Gaussen, Joel Depooter,
  Jojojov on github, jzinn on github, Kamil Dudka, Kunal Ekawde, Lucas Pardue,
  Lucas Severo, Marcel Hernandez, Marcel Raad, Martin Gartner, Max Dymond,
  Michael Kaufmann, Michał Janiszewski, momala454 on github,
  Nathaniel J. Smith, Niall O'Reilly, nico-abram on github,
  Nikos Mavrogiannopoulos, Patrick Monnerat, Paul B. Omta, Paul Dreik,
  Peter Sumatra, Philippe Marguinaud, Piotr Komborski, Ray Satiro,
  Richard Alcock, Roland Hieber, Samuel Surtees, Sebastian Haglund,
  Spezifant on github, Stian Soiland-Reyes, SumatraPeter on github,
  Tatsuhiro Tsujikawa, Tom van der Woerdt, Trivikram Kamat,
  Valerii Zapodovnikov, Vilhelm Prytz, Yechiel Kalmenson, Zenju on github,
  (68 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=4272
 [2] = https://curl.haxx.se/bug/?i=4322
 [3] = https://curl.haxx.se/bug/?i=4328
 [4] = https://curl.haxx.se/bug/?i=4321
 [5] = https://curl.haxx.se/mail/lib-2019-09/0061.html
 [6] = https://curl.haxx.se/bug/?i=4348
 [7] = https://curl.haxx.se/bug/?i=4368
 [8] = https://curl.haxx.se/bug/?i=4365
 [9] = https://curl.haxx.se/bug/?i=4366
 [10] = https://curl.haxx.se/bug/?i=4363
 [11] = https://curl.haxx.se/bug/?i=4358
 [12] = https://curl.haxx.se/bug/?i=4350
 [13] = https://curl.haxx.se/bug/?i=4352
 [14] = https://curl.haxx.se/bug/?i=4324
 [15] = https://curl.haxx.se/bug/?i=4339
 [16] = https://curl.haxx.se/bug/?i=4332
 [17] = https://curl.haxx.se/bug/?i=4326
 [18] = https://curl.haxx.se/bug/?i=4325
 [19] = https://curl.haxx.se/bug/?i=4336
 [20] = https://curl.haxx.se/bug/?i=4329
 [21] = https://curl.haxx.se/bug/?i=4338
 [22] = https://curl.haxx.se/bug/?i=4349
 [23] = https://curl.haxx.se/bug/?i=4381
 [24] = https://curl.haxx.se/bug/?i=4374
 [25] = https://curl.haxx.se/bug/?i=4392
 [26] = https://curl.haxx.se/bug/?i=4389
 [27] = https://curl.haxx.se/bug/?i=4386
 [28] = https://curl.haxx.se/bug/?i=4382
 [29] = https://curl.haxx.se/bug/?i=4383
 [30] = https://curl.haxx.se/bug/?i=4387
 [31] = https://curl.haxx.se/bug/?i=4395
 [32] = https://curl.haxx.se/bug/?i=4394
 [33] = https://curl.haxx.se/bug/?i=4393
 [34] = https://curl.haxx.se/bug/?i=4397
 [35] = https://curl.haxx.se/bug/?i=4435
 [36] = https://curl.haxx.se/bug/?i=4428
 [37] = https://curl.haxx.se/bug/?i=4415
 [38] = https://curl.haxx.se/bug/?i=4425
 [39] = https://curl.haxx.se/bug/?i=4431
 [40] = https://curl.haxx.se/bug/?i=4430
 [41] = https://curl.haxx.se/bug/?i=4411
 [42] = https://curl.haxx.se/bug/?i=3760
 [43] = https://curl.haxx.se/bug/?i=4421
 [44] = https://curl.haxx.se/bug/?i=4403
 [45] = https://curl.haxx.se/bug/?i=4412
 [46] = https://curl.haxx.se/bug/?i=4407
 [47] = https://curl.haxx.se/bug/?i=4214
 [48] = https://curl.haxx.se/bug/?i=4406
 [49] = https://curl.haxx.se/bug/?i=4400
 [50] = https://curl.haxx.se/bug/?i=4398
 [51] = https://curl.haxx.se/bug/?i=4399
 [52] = https://curl.haxx.se/bug/?i=4445
 [53] = https://curl.haxx.se/bug/?i=4447
 [54] = https://curl.haxx.se/bug/?i=4393
 [55] = https://curl.haxx.se/bug/?i=4410
 [56] = https://curl.haxx.se/bug/?i=4310
 [57] = https://curl.haxx.se/bug/?i=4444
 [58] = https://curl.haxx.se/bug/?i=4433
 [59] = https://curl.haxx.se/bug/?i=4441
 [60] = https://curl.haxx.se/bug/?i=4443
 [61] = https://curl.haxx.se/bug/?i=4437
 [62] = https://curl.haxx.se/bug/?i=4424
 [63] = https://curl.haxx.se/bug/?i=4429
 [64] = https://curl.haxx.se/bug/?i=4465
 [65] = https://curl.haxx.se/bug/?i=4308
 [66] = https://curl.haxx.se/bug/?i=4457
 [67] = https://curl.haxx.se/bug/?i=4455
 [68] = https://curl.haxx.se/bug/?i=4303
 [69] = https://curl.haxx.se/bug/?i=4454
 [70] = https://curl.haxx.se/bug/?i=4446
 [71] = https://curl.haxx.se/bug/?i=4011
 [72] = https://curl.haxx.se/bug/?i=4461
 [73] = https://curl.haxx.se/bug/?i=4422
 [74] = https://curl.haxx.se/bug/?i=4469
 [75] = https://curl.haxx.se/bug/?i=4471
 [76] = https://curl.haxx.se/bug/?i=4467
 [77] = https://curl.haxx.se/bug/?i=4460
 [78] = https://curl.haxx.se/bug/?i=4486
 [79] = https://curl.haxx.se/bug/?i=4498
 [80] = https://curl.haxx.se/bug/?i=4491
 [81] = https://curl.haxx.se/bug/?i=4488
 [82] = https://curl.haxx.se/bug/?i=4484
 [83] = https://curl.haxx.se/bug/?i=4483
 [84] = https://curl.haxx.se/bug/?i=4482
 [85] = https://curl.haxx.se/bug/?i=4466
 [86] = https://curl.haxx.se/bug/?i=4506
 [87] = https://curl.haxx.se/bug/?i=4507
 [88] = https://curl.haxx.se/bug/?i=4496
 [89] = https://curl.haxx.se/bug/?i=4503
 [90] = https://curl.haxx.se/bug/?i=4502
 [91] = https://curl.haxx.se/bug/?i=4511
 [92] = https://curl.haxx.se/bug/?i=4512
 [93] = https://curl.haxx.se/bug/?i=4531
 [94] = https://curl.haxx.se/bug/?i=4526
 [95] = https://curl.haxx.se/bug/?i=4523
 [96] = https://curl.haxx.se/bug/?i=4518
 [97] = https://curl.haxx.se/bug/?i=4520
 [98] = https://curl.haxx.se/bug/?i=4508
 [99] = https://curl.haxx.se/bug/?i=4499
 [100] = https://curl.haxx.se/bug/?i=4551
 [101] = https://curl.haxx.se/bug/?i=4547
 [102] = https://curl.haxx.se/bug/?i=4552
 [103] = https://curl.haxx.se/mail/lib-2019-10/0104.html
 [104] = https://curl.haxx.se/bug/?i=4487
 [105] = https://curl.haxx.se/bug/?i=4509
 [106] = https://curl.haxx.se/bug/?i=4539
 [107] = https://curl.haxx.se/bug/?i=4463
 [108] = https://curl.haxx.se/bug/?i=4535
 [109] = https://curl.haxx.se/bug/?i=4529
 [110] = https://curl.haxx.se/bug/?i=4555

Changes to jni/curl/buildconf.bat.

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
rem ***************************************************************************
rem *                                  _   _ ____  _
rem *  Project                     ___| | | |  _ \| |
rem *                             / __| | | | |_) | |
rem *                            | (__| |_| |  _ <| |___
rem *                             \___|\___/|_| \_\_____|
rem *
rem * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
rem *
rem * This software is licensed as described in the file COPYING, which
rem * you should have received as part of this distribution. The terms
rem * are also available at https://curl.haxx.se/docs/copyright.html.
rem *
rem * You may opt to use, copy, modify, merge, publish, distribute and/or sell
rem * copies of the Software, and permit persons to whom the Software is







|







2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
rem ***************************************************************************
rem *                                  _   _ ____  _
rem *  Project                     ___| | | |  _ \| |
rem *                             / __| | | | |_) | |
rem *                            | (__| |_| |  _ <| |___
rem *                             \___|\___/|_| \_\_____|
rem *
rem * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
rem *
rem * This software is licensed as described in the file COPYING, which
rem * you should have received as part of this distribution. The terms
rem * are also available at https://curl.haxx.se/docs/copyright.html.
rem *
rem * You may opt to use, copy, modify, merge, publish, distribute and/or sell
rem * copies of the Software, and permit persons to whom the Software is

Changes to jni/curl/configure.

1123
1124
1125
1126
1127
1128
1129

1130
1131
1132
1133
1134
1135
1136
....
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
....
1873
1874
1875
1876
1877
1878
1879


1880
1881
1882
1883
1884
1885
1886
....
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
....
3326
3327
3328
3329
3330
3331
3332































3333
3334
3335
3336
3337
3338
3339
.....
21811
21812
21813
21814
21815
21816
21817
21818
21819
21820
21821
21822
21823
21824
21825
21826
21827
21828
.....
24448
24449
24450
24451
24452
24453
24454
24455
24456
24457
24458
24459
24460
24461
24462
24463
24464
24465
24466
24467
.....
24471
24472
24473
24474
24475
24476
24477
24478
24479
24480
24481
24482
24483
24484
24485
24486
24487
24488
24489
24490
24491
24492
24493
24494
24495
24496
24497
24498
24499
24500
24501
24502
24503
24504
24505
24506
24507
24508
24509
24510
24511
24512
24513
24514
24515
24516
24517
24518
24519
24520
24521
24522
24523
24524
24525
24526
24527
24528
24529
24530
24531
24532
24533
24534
24535
24536
24537
24538
24539
24540
24541
24542
24543
24544
24545
24546
24547
24548
24549
24550
24551
24552
24553
24554
24555
24556
24557
24558
24559
24560
24561
24562
24563
24564
24565
24566
24567
24568
24569
24570
24571
24572
24573
24574
24575
24576
24577
24578
24579
24580
24581
24582
24583
24584
24585
24586
24587
24588
24589
24590
24591
24592
24593
24594
24595
24596
24597
24598
24599
24600
24601
24602
24603
24604
24605
24606
24607
24608
24609
24610
24611
24612
24613
24614
24615
24616
24617
24618
24619
24620
24621
24622
24623
24624
24625
24626
24627
24628
24629
24630
24631
24632
24633
24634
24635
24636
24637
24638
24639
24640
24641
24642
.....
24647
24648
24649
24650
24651
24652
24653
24654
24655
24656
24657
24658
24659
24660
24661
24662
24663
24664
24665
24666
24667
24668
24669
24670
24671
24672
24673
24674
24675
24676
24677
24678
24679
.....
24708
24709
24710
24711
24712
24713
24714
24715
24716
24717
24718
24719
24720
24721
24722
.....
24725
24726
24727
24728
24729
24730
24731
24732
24733
24734
24735
24736
24737
24738
24739
24740
24741
24742
24743
24744
.....
41445
41446
41447
41448
41449
41450
41451

41452
41453
41454
41455
41456
41457
41458
.....
42617
42618
42619
42620
42621
42622
42623



































42624
42625
42626
42627
42628
42629
42630
.....
42758
42759
42760
42761
42762
42763
42764




42765
42766
42767
42768
42769
42770
42771
.....
45730
45731
45732
45733
45734
45735
45736

45737
45738
45739
45740
45741
45742
45743
.....
45772
45773
45774
45775
45776
45777
45778

45779
45780
45781
45782
45783
45784
45785
45786
enable_warnings
enable_werror
enable_curldebug
enable_symbol_hiding
enable_hidden_symbols
enable_ares
enable_rt

enable_code_coverage
enable_dependency_tracking
enable_largefile
enable_shared
enable_static
with_pic
enable_fast_install
................................................................................
with_amissl
with_ssl
with_egd_socket
with_random
enable_openssl_auto_load_config
with_gnutls
with_mbedtls
with_cyassl
with_wolfssl
with_mesalink
with_nss
with_ca_bundle
with_ca_path
with_ca_fallback
with_libpsl
................................................................................
  --disable-symbol-hiding Disable hiding of library internal symbols
  --enable-hidden-symbols To be deprecated, use --enable-symbol-hiding
  --disable-hidden-symbols
                          To be deprecated, use --disable-symbol-hiding
  --enable-ares[=PATH]    Enable c-ares for DNS lookups
  --disable-ares          Disable c-ares for DNS lookups
  --disable-rt            disable dependency on -lrt


  --enable-code-coverage  Provide code coverage
  --enable-dependency-tracking
                          do not reject slow dependency extractors
  --disable-dependency-tracking
                          speeds up one-time build
  --disable-largefile     omit support for large files
  --enable-shared[=PKGS]  build shared libraries [default=yes]
................................................................................
  --with-random=FILE      read randomness from FILE (default=/dev/urandom)
  --with-gnutls=PATH      where to look for GnuTLS, PATH points to the
                          installation root
  --without-gnutls        disable GnuTLS detection
  --with-mbedtls=PATH     where to look for mbedTLS, PATH points to the
                          installation root
  --without-mbedtls       disable mbedTLS detection
  --with-cyassl=PATH      where to look for CyaSSL, PATH points to the
                          installation root (default: system lib default)
  --without-cyassl        disable CyaSSL detection
  --with-wolfssl=PATH     where to look for WolfSSL, PATH points to the
                          installation root (default: system lib default)
  --without-wolfssl       disable WolfSSL detection
  --with-mesalink=PATH    where to look for MesaLink, PATH points to the
                          installation root
  --without-mesalink      disable MesaLink detection
  --with-nss=PATH         where to look for NSS, PATH points to the
................................................................................
    *)
            dontwant_rt="no"
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
      ;;
  esac

































#
# Check that 'XC_CONFIGURE_PREAMBLE' has already run.
#

if test -z "$xc_configure_preamble_result"; then
  as_fn_error $? "xc_configure_preamble_result not set (internal problem)" "$LINENO" 5
................................................................................
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi


if test "$ipv6" = "yes"; then
  curl_ipv6_msg="enabled"
fi

# Check if struct sockaddr_in6 have sin6_scope_id member
if test "$ipv6" = yes; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if struct sockaddr_in6 has sin6_scope_id member" >&5
$as_echo_n "checking if struct sockaddr_in6 has sin6_scope_id member... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

................................................................................
fi


OPT_WOLFSSL=no

_cppflags=$CPPFLAGS
_ldflags=$LDFLAGS

# Check whether --with-cyassl was given.
if test "${with_cyassl+set}" = set; then :
  withval=$with_cyassl; OPT_WOLFSSL=$withval
fi



# Check whether --with-wolfssl was given.
if test "${with_wolfssl+set}" = set; then :
  withval=$with_wolfssl; OPT_WOLFSSL=$withval
fi

................................................................................

  if test X"$OPT_WOLFSSL" != Xno; then

    if test "$OPT_WOLFSSL" = "yes"; then
      OPT_WOLFSSL=""
    fi


    cyassllibname=cyassl

    if test -z "$OPT_WOLFSSL" ; then

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CyaSSL_Init in -lcyassl" >&5
$as_echo_n "checking for CyaSSL_Init in -lcyassl... " >&6; }
if ${ac_cv_lib_cyassl_CyaSSL_Init+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lcyassl  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#ifdef __cplusplus
extern "C"
#endif
char CyaSSL_Init ();
int main (void)
{
return CyaSSL_Init ();
 ;
 return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_cyassl_CyaSSL_Init=yes
else
  ac_cv_lib_cyassl_CyaSSL_Init=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_cyassl_CyaSSL_Init" >&5
$as_echo "$ac_cv_lib_cyassl_CyaSSL_Init" >&6; }
if test "x$ac_cv_lib_cyassl_CyaSSL_Init" = xyes; then :


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

         USE_WOLFSSL=1

         WOLFSSL_ENABLED=1
         USE_WOLFSSL="yes"
         ssl_msg="CyaSSL"
	 test cyassl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes

fi

    fi

    addld=""
    addlib=""
    addcflags=""
    cyassllib=""

    if test "x$USE_WOLFSSL" != "xyes"; then
            addld=-L$OPT_WOLFSSL/lib$libsuff
      addcflags=-I$OPT_WOLFSSL/include
      cyassllib=$OPT_WOLFSSL/lib$libsuff

      LDFLAGS="$LDFLAGS $addld"
      if test "$addcflags" != "-I/usr/include"; then
         CPPFLAGS="$CPPFLAGS $addcflags"
      fi

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CyaSSL_Init in -lcyassl" >&5
$as_echo_n "checking for CyaSSL_Init in -lcyassl... " >&6; }
if ${ac_cv_lib_cyassl_CyaSSL_Init+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_check_lib_save_LIBS=$LIBS
LIBS="-lcyassl  $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


#ifdef __cplusplus
extern "C"
#endif
char CyaSSL_Init ();
int main (void)
{
return CyaSSL_Init ();
 ;
 return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_lib_cyassl_CyaSSL_Init=yes
else
  ac_cv_lib_cyassl_CyaSSL_Init=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_cyassl_CyaSSL_Init" >&5
$as_echo "$ac_cv_lib_cyassl_CyaSSL_Init" >&6; }
if test "x$ac_cv_lib_cyassl_CyaSSL_Init" = xyes; then :


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

       USE_WOLFSSL=1

       WOLFSSL_ENABLED=1
       USE_WOLFSSL="yes"
       ssl_msg="CyaSSL"
       test cyassl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes

else

         CPPFLAGS=$_cppflags
         LDFLAGS=$_ldflags
         cyassllib=""

fi

    fi

    addld=""
    addlib=""
    addcflags=""

    if test "x$USE_WOLFSSL" != "xyes"; then
            addld=-L$OPT_WOLFSSL/lib$libsuff
      addcflags=-I$OPT_WOLFSSL/include
      cyassllib=$OPT_WOLFSSL/lib$libsuff

      LDFLAGS="$LDFLAGS $addld"
      if test "$addcflags" != "-I/usr/include"; then
         CPPFLAGS="$CPPFLAGS $addcflags"
      fi

      cyassllibname=wolfssl
      my_ac_save_LIBS="$LIBS"
      LIBS="-l$cyassllibname -lm $LIBS"

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CyaSSL_Init in -lwolfssl" >&5
$as_echo_n "checking for CyaSSL_Init in -lwolfssl... " >&6; }
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


/* These aren't needed for detection and confuse WolfSSL.
   They are set up properly later if it is detected.  */
#undef SIZEOF_LONG
#undef SIZEOF_LONG_LONG
#include <cyassl/ssl.h>

int main (void)
{

	  return CyaSSL_Init();

 ;
 return 0;
}

_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
................................................................................
$as_echo "#define USE_WOLFSSL 1" >>confdefs.h

         USE_WOLFSSL=1

         WOLFSSL_ENABLED=1
         USE_WOLFSSL="yes"
         ssl_msg="WolfSSL"
	 test cyassl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes

else

         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
         CPPFLAGS=$_cppflags
         LDFLAGS=$_ldflags
         cyassllib=""

fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
      LIBS="$my_ac_save_LIBS"
    fi

    if test "x$USE_WOLFSSL" = "xyes"; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: detected $cyassllibname" >&5
$as_echo "$as_me: detected $cyassllibname" >&6;}
      check_for_ca_bundle=1

            { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
$as_echo_n "checking size of long long... " >&6; }
if ${ac_cv_sizeof_long_long+:} false; then :
  $as_echo_n "(cached) " >&6
else
................................................................................

cat >>confdefs.h <<_ACEOF
#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
_ACEOF



      LIBS="-l$cyassllibname -lm $LIBS"

                  for ac_func in wolfSSLv3_client_method \
                     wolfSSL_get_peer_certificate \
                     wolfSSL_UseALPN
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"
................................................................................
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done


      if test -n "$cyassllib"; then
                                        if test "x$cross_compiling" != "xyes"; then
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$cyassllib"
          export CURL_LIBRARY_PATH
          { $as_echo "$as_me:${as_lineno-$LINENO}: Added $cyassllib to CURL_LIBRARY_PATH" >&5
$as_echo "$as_me: Added $cyassllib to CURL_LIBRARY_PATH" >&6;}
        fi
      fi

    fi

  fi
  test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
................................................................................
if test "$ipv6" = "yes"; then
  if test "$curl_cv_func_getaddrinfo" = "yes"; then

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

    IPV6_ENABLED=1


  fi
fi


            #
  tst_method="unknown"

................................................................................
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"$curl_cv_native_windows" != "xyes" &&
    test "$want_symbol_hiding" = "yes" &&
................................................................................
  SUPPORT_FEATURES="$SUPPORT_FEATURES MultiSSL"
fi

if test "x$OPENSSL_ENABLED" = "x1" -o "x$GNUTLS_ENABLED" = "x1" \
    -o "x$NSS_ENABLED" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES HTTPS-proxy"
fi







if test "x$CURL_DISABLE_HTTP" != "x1"; then
  SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP"
  if test "x$SSL_ENABLED" = "x1"; then
    SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTPS"
................................................................................
  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}
................................................................................
  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







>







 







<







 







>
>







 







<
<
<







 







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







 







<
<
<
<







 







<
<
<
<
<
<







 







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



<


|

|






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

|

|
|








|




|







 







|







|








|
|







 







|







 







|

|

|
|







 







>







 







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







 







>
>
>
>







 







>







 







>








1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
....
1173
1174
1175
1176
1177
1178
1179

1180
1181
1182
1183
1184
1185
1186
....
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
....
2024
2025
2026
2027
2028
2029
2030



2031
2032
2033
2034
2035
2036
2037
....
3325
3326
3327
3328
3329
3330
3331
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
.....
21841
21842
21843
21844
21845
21846
21847




21848
21849
21850
21851
21852
21853
21854
.....
24474
24475
24476
24477
24478
24479
24480






24481
24482
24483
24484
24485
24486
24487
.....
24491
24492
24493
24494
24495
24496
24497






















































24498
24499
24500

24501
24502
24503
24504
24505
24506
24507
24508
24509
24510
24511






































































24512
24513
24514
24515
24516
24517
24518
24519
24520
24521
24522
24523
24524
24525
24526
24527
24528
24529
24530
24531
24532
24533
24534
24535
24536
24537
.....
24542
24543
24544
24545
24546
24547
24548
24549
24550
24551
24552
24553
24554
24555
24556
24557
24558
24559
24560
24561
24562
24563
24564
24565
24566
24567
24568
24569
24570
24571
24572
24573
24574
.....
24603
24604
24605
24606
24607
24608
24609
24610
24611
24612
24613
24614
24615
24616
24617
.....
24620
24621
24622
24623
24624
24625
24626
24627
24628
24629
24630
24631
24632
24633
24634
24635
24636
24637
24638
24639
.....
41340
41341
41342
41343
41344
41345
41346
41347
41348
41349
41350
41351
41352
41353
41354
.....
42513
42514
42515
42516
42517
42518
42519
42520
42521
42522
42523
42524
42525
42526
42527
42528
42529
42530
42531
42532
42533
42534
42535
42536
42537
42538
42539
42540
42541
42542
42543
42544
42545
42546
42547
42548
42549
42550
42551
42552
42553
42554
42555
42556
42557
42558
42559
42560
42561
.....
42689
42690
42691
42692
42693
42694
42695
42696
42697
42698
42699
42700
42701
42702
42703
42704
42705
42706
.....
45665
45666
45667
45668
45669
45670
45671
45672
45673
45674
45675
45676
45677
45678
45679
.....
45708
45709
45710
45711
45712
45713
45714
45715
45716
45717
45718
45719
45720
45721
45722
45723
enable_warnings
enable_werror
enable_curldebug
enable_symbol_hiding
enable_hidden_symbols
enable_ares
enable_rt
enable_esni
enable_code_coverage
enable_dependency_tracking
enable_largefile
enable_shared
enable_static
with_pic
enable_fast_install
................................................................................
with_amissl
with_ssl
with_egd_socket
with_random
enable_openssl_auto_load_config
with_gnutls
with_mbedtls

with_wolfssl
with_mesalink
with_nss
with_ca_bundle
with_ca_path
with_ca_fallback
with_libpsl
................................................................................
  --disable-symbol-hiding Disable hiding of library internal symbols
  --enable-hidden-symbols To be deprecated, use --enable-symbol-hiding
  --disable-hidden-symbols
                          To be deprecated, use --disable-symbol-hiding
  --enable-ares[=PATH]    Enable c-ares for DNS lookups
  --disable-ares          Disable c-ares for DNS lookups
  --disable-rt            disable dependency on -lrt
  --enable-esni           Enable ESNI support
  --disable-esni          Disable ESNI support
  --enable-code-coverage  Provide code coverage
  --enable-dependency-tracking
                          do not reject slow dependency extractors
  --disable-dependency-tracking
                          speeds up one-time build
  --disable-largefile     omit support for large files
  --enable-shared[=PKGS]  build shared libraries [default=yes]
................................................................................
  --with-random=FILE      read randomness from FILE (default=/dev/urandom)
  --with-gnutls=PATH      where to look for GnuTLS, PATH points to the
                          installation root
  --without-gnutls        disable GnuTLS detection
  --with-mbedtls=PATH     where to look for mbedTLS, PATH points to the
                          installation root
  --without-mbedtls       disable mbedTLS detection



  --with-wolfssl=PATH     where to look for WolfSSL, PATH points to the
                          installation root (default: system lib default)
  --without-wolfssl       disable WolfSSL detection
  --with-mesalink=PATH    where to look for MesaLink, PATH points to the
                          installation root
  --without-mesalink      disable MesaLink detection
  --with-nss=PATH         where to look for NSS, PATH points to the
................................................................................
    *)
            dontwant_rt="no"
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
      ;;
  esac


  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable ESNI support" >&5
$as_echo_n "checking whether to enable ESNI support... " >&6; }
  OPT_ESNI="default"
  # Check whether --enable-esni was given.
if test "${enable_esni+set}" = set; then :
  enableval=$enable_esni; OPT_ESNI=$enableval
fi

  case "$OPT_ESNI" in
    no)
            want_esni="no"
      curl_esni_msg="no      (--enable-esni)"
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
      ;;
    default)
            want_esni="no"
      curl_esni_msg="no      (--enable-esni)"
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
      ;;
    *)
            want_esni="yes"
      curl_esni_msg="enabled (--disable-esni)"
      experimental="esni"
      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
      ;;
  esac


#
# Check that 'XC_CONFIGURE_PREAMBLE' has already run.
#

if test -z "$xc_configure_preamble_result"; then
  as_fn_error $? "xc_configure_preamble_result not set (internal problem)" "$LINENO" 5
................................................................................
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
  conftest.$ac_objext conftest.beam conftest.$ac_ext
fi

fi






# Check if struct sockaddr_in6 have sin6_scope_id member
if test "$ipv6" = yes; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if struct sockaddr_in6 has sin6_scope_id member" >&5
$as_echo_n "checking if struct sockaddr_in6 has sin6_scope_id member... " >&6; }
  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

................................................................................
fi


OPT_WOLFSSL=no

_cppflags=$CPPFLAGS
_ldflags=$LDFLAGS








# Check whether --with-wolfssl was given.
if test "${with_wolfssl+set}" = set; then :
  withval=$with_wolfssl; OPT_WOLFSSL=$withval
fi

................................................................................

  if test X"$OPT_WOLFSSL" != Xno; then

    if test "$OPT_WOLFSSL" = "yes"; then
      OPT_WOLFSSL=""
    fi























































    addld=""
    addlib=""
    addcflags=""


    if test "x$USE_WOLFSSL" != "xyes"; then
      addld=-L$OPT_WOLFSSL/lib$libsuff
      addcflags=-I$OPT_WOLFSSL/include
      wolfssllibpath=$OPT_WOLFSSL/lib$libsuff

      LDFLAGS="$LDFLAGS $addld"
      if test "$addcflags" != "-I/usr/include"; then
         CPPFLAGS="$CPPFLAGS $addcflags"
      fi







































































      my_ac_save_LIBS="$LIBS"
      LIBS="-lwolfssl -lm $LIBS"

      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wolfSSL_Init in -lwolfssl" >&5
$as_echo_n "checking for wolfSSL_Init in -lwolfssl... " >&6; }
      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */


/* These aren't needed for detection and confuse WolfSSL.
   They are set up properly later if it is detected.  */
#undef SIZEOF_LONG
#undef SIZEOF_LONG_LONG
#include <wolfssl/ssl.h>

int main (void)
{

	  return wolfSSL_Init();

 ;
 return 0;
}

_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
................................................................................
$as_echo "#define USE_WOLFSSL 1" >>confdefs.h

         USE_WOLFSSL=1

         WOLFSSL_ENABLED=1
         USE_WOLFSSL="yes"
         ssl_msg="WolfSSL"
	 test wolfssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes

else

         { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
         CPPFLAGS=$_cppflags
         LDFLAGS=$_ldflags
         wolfssllibpath=""

fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext conftest.$ac_ext
      LIBS="$my_ac_save_LIBS"
    fi

    if test "x$USE_WOLFSSL" = "xyes"; then
      { $as_echo "$as_me:${as_lineno-$LINENO}: detected wolfSSL" >&5
$as_echo "$as_me: detected wolfSSL" >&6;}
      check_for_ca_bundle=1

            { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
$as_echo_n "checking size of long long... " >&6; }
if ${ac_cv_sizeof_long_long+:} false; then :
  $as_echo_n "(cached) " >&6
else
................................................................................

cat >>confdefs.h <<_ACEOF
#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long
_ACEOF



      LIBS="-lwolfssl -lm $LIBS"

                  for ac_func in wolfSSLv3_client_method \
                     wolfSSL_get_peer_certificate \
                     wolfSSL_UseALPN
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"
................................................................................
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF

fi
done


      if test -n "$wolfssllibpath"; then
                                        if test "x$cross_compiling" != "xyes"; then
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$wolfssllibpath"
          export CURL_LIBRARY_PATH
          { $as_echo "$as_me:${as_lineno-$LINENO}: Added $wolfssllibpath to CURL_LIBRARY_PATH" >&5
$as_echo "$as_me: Added $wolfssllibpath to CURL_LIBRARY_PATH" >&6;}
        fi
      fi

    fi

  fi
  test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg"
................................................................................
if test "$ipv6" = "yes"; then
  if test "$curl_cv_func_getaddrinfo" = "yes"; then

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

    IPV6_ENABLED=1

    curl_ipv6_msg="enabled"
  fi
fi


            #
  tst_method="unknown"

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

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

  experimental="$experimental alt-svc"
fi

if test "x$want_esni" != "xno"; then
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ESNI support is available" >&5
$as_echo_n "checking whether ESNI support is available... " >&6; }

    ESNI_ENABLED=0
  ESNI_SUPPORT=''

      if test "x$OPENSSL_ENABLED" == "x1"; then
    for ac_func in SSL_get_esni_status
do :
  ac_fn_c_check_func "$LINENO" "SSL_get_esni_status" "ac_cv_func_SSL_get_esni_status"
if test "x$ac_cv_func_SSL_get_esni_status" = xyes; then :
  cat >>confdefs.h <<_ACEOF
#define HAVE_SSL_GET_ESNI_STATUS 1
_ACEOF
 ESNI_SUPPORT="ESNI support available (OpenSSL with SSL_get_esni_status)"
      ESNI_ENABLED=1
fi
done


    fi

    if test "x$ESNI_ENABLED" == "x1"; then

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

    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ESNI_SUPPORT" >&5
$as_echo "$ESNI_SUPPORT" >&6; }
    experimental="$experimental ESNI"
  else
    as_fn_error $? "--enable-esni ignored: No ESNI support found" "$LINENO" 5
  fi
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"$curl_cv_native_windows" != "xyes" &&
    test "$want_symbol_hiding" = "yes" &&
................................................................................
  SUPPORT_FEATURES="$SUPPORT_FEATURES MultiSSL"
fi

if test "x$OPENSSL_ENABLED" = "x1" -o "x$GNUTLS_ENABLED" = "x1" \
    -o "x$NSS_ENABLED" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES HTTPS-proxy"
fi

if test "x$ESNI_ENABLED" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES ESNI"
fi



if test "x$CURL_DISABLE_HTTP" != "x1"; then
  SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP"
  if test "x$SSL_ENABLED" = "x1"; then
    SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTPS"
................................................................................
  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}
  ESNI:             ${curl_esni_msg}
  Protocols:        ${SUPPORT_PROTOCOLS}
  Features:         ${SUPPORT_FEATURES}
" >&5
$as_echo "$as_me: Configured to build curl/libcurl:

  Host setup:       ${host}
  Install prefix:   ${prefix}
................................................................................
  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}
  ESNI:             ${curl_esni_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.

45
46
47
48
49
50
51

52
53
54
55
56
57
58
....
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
....
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
....
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
....
4022
4023
4024
4025
4026
4027
4028

4029
4030
4031
4032
4033
4034
4035
....
4492
4493
4494
4495
4496
4497
4498






























4499
4500
4501
4502
4503
4504
4505
....
4613
4614
4615
4616
4617
4618
4619




4620
4621
4622
4623
4624
4625
4626
....
4797
4798
4799
4800
4801
4802
4803

4804
4805
4806
4807
4808
4809
4810
4811
CURL_CHECK_OPTION_OPTIMIZE
CURL_CHECK_OPTION_WARNINGS
CURL_CHECK_OPTION_WERROR
CURL_CHECK_OPTION_CURLDEBUG
CURL_CHECK_OPTION_SYMBOL_HIDING
CURL_CHECK_OPTION_ARES
CURL_CHECK_OPTION_RT


XC_CHECK_PATH_SEPARATOR

#
# save the configure arguments
#
CONFIGURE_OPTIONS="\"$ac_configure_args\""
................................................................................
  ipv6=yes,
  AC_MSG_RESULT(no)
  ipv6=no,
  AC_MSG_RESULT(yes)
  ipv6=yes
))

if test "$ipv6" = "yes"; then
  curl_ipv6_msg="enabled"
fi

# Check if struct sockaddr_in6 have sin6_scope_id member
if test "$ipv6" = yes; then
  AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member])
  AC_TRY_COMPILE([
#include <sys/types.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
................................................................................
dnl ----------------------------------------------------

dnl Default to compiler & linker defaults for wolfSSL files & libraries.
OPT_WOLFSSL=no

_cppflags=$CPPFLAGS
_ldflags=$LDFLAGS
AC_ARG_WITH(cyassl,dnl
AC_HELP_STRING([--with-cyassl=PATH],[where to look for CyaSSL, PATH points to the installation root (default: system lib default)])
AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]),
  OPT_WOLFSSL=$withval)

dnl provide --with-wolfssl as an alias for --with-cyassl
AC_ARG_WITH(wolfssl,dnl
AC_HELP_STRING([--with-wolfssl=PATH],[where to look for WolfSSL, PATH points to the installation root (default: system lib default)])
AC_HELP_STRING([--without-wolfssl], [disable WolfSSL detection]),
  OPT_WOLFSSL=$withval)

if test -z "$ssl_backends" -o "x$OPT_WOLFSSL" != xno; then
  ssl_msg=
................................................................................

  if test X"$OPT_WOLFSSL" != Xno; then

    if test "$OPT_WOLFSSL" = "yes"; then
      OPT_WOLFSSL=""
    fi

    dnl This should be reworked to use pkg-config instead

    cyassllibname=cyassl

    if test -z "$OPT_WOLFSSL" ; then
      dnl check for lib in system default first

      AC_CHECK_LIB(cyassl, CyaSSL_Init,
      dnl libcyassl found, set the variable
       [
         AC_DEFINE(USE_WOLFSSL, 1, [if wolfSSL is enabled])
         AC_SUBST(USE_WOLFSSL, [1])
         WOLFSSL_ENABLED=1
         USE_WOLFSSL="yes"
         ssl_msg="CyaSSL"
	 test cyassl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
        ])
    fi

    addld=""
    addlib=""
    addcflags=""
    cyassllib=""

    if test "x$USE_WOLFSSL" != "xyes"; then
      dnl add the path and test again
      addld=-L$OPT_WOLFSSL/lib$libsuff
      addcflags=-I$OPT_WOLFSSL/include
      cyassllib=$OPT_WOLFSSL/lib$libsuff

      LDFLAGS="$LDFLAGS $addld"
      if test "$addcflags" != "-I/usr/include"; then
         CPPFLAGS="$CPPFLAGS $addcflags"
      fi

      AC_CHECK_LIB(cyassl, CyaSSL_Init,
       [
       AC_DEFINE(USE_WOLFSSL, 1, [if CyaSSL is enabled])
       AC_SUBST(USE_WOLFSSL, [1])
       WOLFSSL_ENABLED=1
       USE_WOLFSSL="yes"
       ssl_msg="CyaSSL"
       test cyassl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
       ],
       [
         CPPFLAGS=$_cppflags
         LDFLAGS=$_ldflags
         cyassllib=""
       ])
    fi

    addld=""
    addlib=""
    addcflags=""

    if test "x$USE_WOLFSSL" != "xyes"; then
      dnl libcyassl renamed to libwolfssl as of 3.4.0
      addld=-L$OPT_WOLFSSL/lib$libsuff
      addcflags=-I$OPT_WOLFSSL/include
      cyassllib=$OPT_WOLFSSL/lib$libsuff

      LDFLAGS="$LDFLAGS $addld"
      if test "$addcflags" != "-I/usr/include"; then
         CPPFLAGS="$CPPFLAGS $addcflags"
      fi

      cyassllibname=wolfssl
      my_ac_save_LIBS="$LIBS"
      LIBS="-l$cyassllibname -lm $LIBS"

      AC_MSG_CHECKING([for CyaSSL_Init in -lwolfssl])
      AC_LINK_IFELSE([
	AC_LANG_PROGRAM([[
/* These aren't needed for detection and confuse WolfSSL.
   They are set up properly later if it is detected.  */
#undef SIZEOF_LONG
#undef SIZEOF_LONG_LONG
#include <cyassl/ssl.h>
	]],[[
	  return CyaSSL_Init();
	]])
      ],[
         AC_MSG_RESULT(yes)
         AC_DEFINE(USE_WOLFSSL, 1, [if wolfSSL is enabled])
         AC_SUBST(USE_WOLFSSL, [1])
         WOLFSSL_ENABLED=1
         USE_WOLFSSL="yes"
         ssl_msg="WolfSSL"
	 test cyassl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
       ],
       [
         AC_MSG_RESULT(no)
         CPPFLAGS=$_cppflags
         LDFLAGS=$_ldflags
         cyassllib=""
       ])
      LIBS="$my_ac_save_LIBS"
    fi

    if test "x$USE_WOLFSSL" = "xyes"; then
      AC_MSG_NOTICE([detected $cyassllibname])
      check_for_ca_bundle=1

      dnl cyassl/ctaocrypt/types.h needs SIZEOF_LONG_LONG defined!
      AX_COMPILE_CHECK_SIZEOF(long long)

      LIBS="-l$cyassllibname -lm $LIBS"

      dnl Recent WolfSSL versions build without SSLv3 by default
      dnl WolfSSL needs configure --enable-opensslextra to have *get_peer*
      AC_CHECK_FUNCS(wolfSSLv3_client_method \
                     wolfSSL_get_peer_certificate \
                     wolfSSL_UseALPN)

      if test -n "$cyassllib"; then
        dnl when shared libs were found in a path that the run-time
        dnl linker doesn't search through, we need to add it to
        dnl CURL_LIBRARY_PATH to prevent further configure tests to fail
        dnl due to this
        if test "x$cross_compiling" != "xyes"; then
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$cyassllib"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $cyassllib to CURL_LIBRARY_PATH])
        fi
      fi

    fi

  fi dnl wolfSSL not disabled

................................................................................
])

if test "$ipv6" = "yes"; then
  if test "$curl_cv_func_getaddrinfo" = "yes"; then
    AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support])
    IPV6_ENABLED=1
    AC_SUBST(IPV6_ENABLED)

  fi
fi

CURL_CHECK_NONBLOCKING_SOCKET

dnl ************************************************************
dnl nroff tool stuff
................................................................................
       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

dnl
................................................................................
  SUPPORT_FEATURES="$SUPPORT_FEATURES MultiSSL"
fi

if test "x$OPENSSL_ENABLED" = "x1" -o "x$GNUTLS_ENABLED" = "x1" \
    -o "x$NSS_ENABLED" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES HTTPS-proxy"
fi





AC_SUBST(SUPPORT_FEATURES)

dnl For supported protocols in pkg-config file
if test "x$CURL_DISABLE_HTTP" != "x1"; then
  SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP"
  if test "x$SSL_ENABLED" = "x1"; then
................................................................................
  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







>







 







<
<
<
<







 







<
<
<
<

<







 







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



<


<


|






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

|

|






|

|








|





|





|


|


|







|





|

|







 







>







 







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







 







>
>
>
>







 







>








45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
....
1223
1224
1225
1226
1227
1228
1229




1230
1231
1232
1233
1234
1235
1236
....
2208
2209
2210
2211
2212
2213
2214




2215

2216
2217
2218
2219
2220
2221
2222
....
2223
2224
2225
2226
2227
2228
2229



















2230
2231
2232

2233
2234

2235
2236
2237
2238
2239
2240
2241
2242
2243
































2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
....
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
....
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
....
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
....
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
CURL_CHECK_OPTION_OPTIMIZE
CURL_CHECK_OPTION_WARNINGS
CURL_CHECK_OPTION_WERROR
CURL_CHECK_OPTION_CURLDEBUG
CURL_CHECK_OPTION_SYMBOL_HIDING
CURL_CHECK_OPTION_ARES
CURL_CHECK_OPTION_RT
CURL_CHECK_OPTION_ESNI

XC_CHECK_PATH_SEPARATOR

#
# save the configure arguments
#
CONFIGURE_OPTIONS="\"$ac_configure_args\""
................................................................................
  ipv6=yes,
  AC_MSG_RESULT(no)
  ipv6=no,
  AC_MSG_RESULT(yes)
  ipv6=yes
))





# Check if struct sockaddr_in6 have sin6_scope_id member
if test "$ipv6" = yes; then
  AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member])
  AC_TRY_COMPILE([
#include <sys/types.h>
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
................................................................................
dnl ----------------------------------------------------

dnl Default to compiler & linker defaults for wolfSSL files & libraries.
OPT_WOLFSSL=no

_cppflags=$CPPFLAGS
_ldflags=$LDFLAGS






AC_ARG_WITH(wolfssl,dnl
AC_HELP_STRING([--with-wolfssl=PATH],[where to look for WolfSSL, PATH points to the installation root (default: system lib default)])
AC_HELP_STRING([--without-wolfssl], [disable WolfSSL detection]),
  OPT_WOLFSSL=$withval)

if test -z "$ssl_backends" -o "x$OPT_WOLFSSL" != xno; then
  ssl_msg=
................................................................................

  if test X"$OPT_WOLFSSL" != Xno; then

    if test "$OPT_WOLFSSL" = "yes"; then
      OPT_WOLFSSL=""
    fi




















    addld=""
    addlib=""
    addcflags=""


    if test "x$USE_WOLFSSL" != "xyes"; then

      addld=-L$OPT_WOLFSSL/lib$libsuff
      addcflags=-I$OPT_WOLFSSL/include
      wolfssllibpath=$OPT_WOLFSSL/lib$libsuff

      LDFLAGS="$LDFLAGS $addld"
      if test "$addcflags" != "-I/usr/include"; then
         CPPFLAGS="$CPPFLAGS $addcflags"
      fi

































      my_ac_save_LIBS="$LIBS"
      LIBS="-lwolfssl -lm $LIBS"

      AC_MSG_CHECKING([for wolfSSL_Init in -lwolfssl])
      AC_LINK_IFELSE([
	AC_LANG_PROGRAM([[
/* These aren't needed for detection and confuse WolfSSL.
   They are set up properly later if it is detected.  */
#undef SIZEOF_LONG
#undef SIZEOF_LONG_LONG
#include <wolfssl/ssl.h>
	]],[[
	  return wolfSSL_Init();
	]])
      ],[
         AC_MSG_RESULT(yes)
         AC_DEFINE(USE_WOLFSSL, 1, [if wolfSSL is enabled])
         AC_SUBST(USE_WOLFSSL, [1])
         WOLFSSL_ENABLED=1
         USE_WOLFSSL="yes"
         ssl_msg="WolfSSL"
	 test wolfssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes
       ],
       [
         AC_MSG_RESULT(no)
         CPPFLAGS=$_cppflags
         LDFLAGS=$_ldflags
         wolfssllibpath=""
       ])
      LIBS="$my_ac_save_LIBS"
    fi

    if test "x$USE_WOLFSSL" = "xyes"; then
      AC_MSG_NOTICE([detected wolfSSL])
      check_for_ca_bundle=1

      dnl wolfssl/ctaocrypt/types.h needs SIZEOF_LONG_LONG defined!
      AX_COMPILE_CHECK_SIZEOF(long long)

      LIBS="-lwolfssl -lm $LIBS"

      dnl Recent WolfSSL versions build without SSLv3 by default
      dnl WolfSSL needs configure --enable-opensslextra to have *get_peer*
      AC_CHECK_FUNCS(wolfSSLv3_client_method \
                     wolfSSL_get_peer_certificate \
                     wolfSSL_UseALPN)

      if test -n "$wolfssllibpath"; then
        dnl when shared libs were found in a path that the run-time
        dnl linker doesn't search through, we need to add it to
        dnl CURL_LIBRARY_PATH to prevent further configure tests to fail
        dnl due to this
        if test "x$cross_compiling" != "xyes"; then
          CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$wolfssllibpath"
          export CURL_LIBRARY_PATH
          AC_MSG_NOTICE([Added $wolfssllibpath to CURL_LIBRARY_PATH])
        fi
      fi

    fi

  fi dnl wolfSSL not disabled

................................................................................
])

if test "$ipv6" = "yes"; then
  if test "$curl_cv_func_getaddrinfo" = "yes"; then
    AC_DEFINE(ENABLE_IPV6, 1, [Define if you want to enable IPv6 support])
    IPV6_ENABLED=1
    AC_SUBST(IPV6_ENABLED)
    curl_ipv6_msg="enabled"
  fi
fi

CURL_CHECK_NONBLOCKING_SOCKET

dnl ************************************************************
dnl nroff tool stuff
................................................................................
       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 check whether ESNI support, if desired, is actually available
dnl
if test "x$want_esni" != "xno"; then
  AC_MSG_CHECKING([whether ESNI support is available])

  dnl assume NOT and look for sufficient condition
  ESNI_ENABLED=0
  ESNI_SUPPORT=''

  dnl OpenSSL with a chosen ESNI function should be enough
  dnl so more exhaustive checking seems unnecessary for now
  if test "x$OPENSSL_ENABLED" == "x1"; then
    AC_CHECK_FUNCS(SSL_get_esni_status,
      ESNI_SUPPORT="ESNI support available (OpenSSL with SSL_get_esni_status)"
      ESNI_ENABLED=1)

  dnl add 'elif' chain here for additional implementations
  fi

  dnl now deal with whatever we found
  if test "x$ESNI_ENABLED" == "x1"; then
    AC_DEFINE(USE_ESNI, 1, [if ESNI support is available])
    AC_MSG_RESULT($ESNI_SUPPORT)
    experimental="$experimental ESNI"
  else
    AC_MSG_ERROR([--enable-esni ignored: No ESNI support found])
  fi
fi

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

dnl
................................................................................
  SUPPORT_FEATURES="$SUPPORT_FEATURES MultiSSL"
fi

if test "x$OPENSSL_ENABLED" = "x1" -o "x$GNUTLS_ENABLED" = "x1" \
    -o "x$NSS_ENABLED" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES HTTPS-proxy"
fi

if test "x$ESNI_ENABLED" = "x1"; then
  SUPPORT_FEATURES="$SUPPORT_FEATURES ESNI"
fi

AC_SUBST(SUPPORT_FEATURES)

dnl For supported protocols in pkg-config file
if test "x$CURL_DISABLE_HTTP" != "x1"; then
  SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS HTTP"
  if test "x$SSL_ENABLED" = "x1"; then
................................................................................
  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}
  ESNI:             ${curl_esni_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/BINDINGS.md.

18
19
20
21
22
23
24


25
26
27
28
29
30
31
..
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
[curlcpp](https://github.com/JosephP91/curlcpp) by Giuseppe Persico and [C++
Requests](https://github.com/whoshuu/cpr) by Huu Nguyen

[Ch](https://chcurl.sourceforge.io/) Written by Stephen Nestinger and Jonathan Rogado

Cocoa: [BBHTTP](https://github.com/brunodecarvalho/BBHTTP) written by Bruno de Carvalho
[curlhandle](https://github.com/karelia/curlhandle) Written by Dan Wood



[D](https://dlang.org/library/std/net/curl.html) Written by Kenneth Bogert

[Delphi](https://github.com/Mercury13/curl4delphi) Written by Mikhail Merkuryev

[Dylan](https://dylanlibs.sourceforge.io/) Written by Chris Double

................................................................................

[Haskell](https://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl) Written by Galois, Inc

[Java](https://github.com/pjlegato/curl-java)

[Julia](https://github.com/forio/Curl.jl) Written by Paul Howe



[Lisp](https://common-lisp.net/project/cl-curl/) Written by Liam Healy

Lua: [luacurl](http://luacurl.luaforge.net/) by Alexander Marinov, [Lua-cURL](https://github.com/Lua-cURL) by Jürgen Hötzel

[Mono](https://forge.novell.com/modules/xfmod/project/?libcurl-mono) Written by Jeffrey Phillips

[.NET](https://sourceforge.net/projects/libcurl-net/) libcurl-net by Jeffrey Phillips



[node.js](https://github.com/JCMais/node-libcurl) node-libcurl by Jonathan Cardoso Machado

[Object-Pascal](https://web.archive.org/web/20020610214926/www.tekool.com/opcurl) Free Pascal, Delphi and Kylix binding written by Christophe Espern.

[OCaml](https://opam.ocaml.org/packages/ocurl/) Written by Lars Nilsson and ygrek

[Pascal](https://web.archive.org/web/20030804091414/houston.quik.com/jkp/curlpas/) Free Pascal, Delphi and Kylix binding written by Jeffrey Pohlmeyer.

Perl: [WWW--Curl](https://github.com/szbalint/WWW--Curl) Maintained by Cris
Bailiff and Bálint Szilakszi,
[perl6-net-curl](https://github.com/azawawi/perl6-net-curl) by Ahmad M. Zawawi


[PHP](https://php.net/curl) Originally written by Sterling Hughes

[PostgreSQL](https://github.com/pramsey/pgsql-http) - HTTP client for PostgreSQL



[Python](http://pycurl.io/) PycURL by Kjetil Jacobsen

[R](https://cran.r-project.org/package=curl)

[Rexx](https://rexxcurl.sourceforge.io/) Written Mark Hessling








>
>







 







>
>







>
>









|


>




>
>







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
..
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
[curlcpp](https://github.com/JosephP91/curlcpp) by Giuseppe Persico and [C++
Requests](https://github.com/whoshuu/cpr) by Huu Nguyen

[Ch](https://chcurl.sourceforge.io/) Written by Stephen Nestinger and Jonathan Rogado

Cocoa: [BBHTTP](https://github.com/brunodecarvalho/BBHTTP) written by Bruno de Carvalho
[curlhandle](https://github.com/karelia/curlhandle) Written by Dan Wood

Clojure: [clj-curl](https://github.com/lsevero/clj-curl) by Lucas Severo

[D](https://dlang.org/library/std/net/curl.html) Written by Kenneth Bogert

[Delphi](https://github.com/Mercury13/curl4delphi) Written by Mikhail Merkuryev

[Dylan](https://dylanlibs.sourceforge.io/) Written by Chris Double

................................................................................

[Haskell](https://hackage.haskell.org/cgi-bin/hackage-scripts/package/curl) Written by Galois, Inc

[Java](https://github.com/pjlegato/curl-java)

[Julia](https://github.com/forio/Curl.jl) Written by Paul Howe

[Kapito](https://github.com/puzza007/katipo) is an Erlang HTTP library around libcurl.

[Lisp](https://common-lisp.net/project/cl-curl/) Written by Liam Healy

Lua: [luacurl](http://luacurl.luaforge.net/) by Alexander Marinov, [Lua-cURL](https://github.com/Lua-cURL) by Jürgen Hötzel

[Mono](https://forge.novell.com/modules/xfmod/project/?libcurl-mono) Written by Jeffrey Phillips

[.NET](https://sourceforge.net/projects/libcurl-net/) libcurl-net by Jeffrey Phillips

[Nim](https://nimble.directory/pkg/libcurl) wrapper for libcurl

[node.js](https://github.com/JCMais/node-libcurl) node-libcurl by Jonathan Cardoso Machado

[Object-Pascal](https://web.archive.org/web/20020610214926/www.tekool.com/opcurl) Free Pascal, Delphi and Kylix binding written by Christophe Espern.

[OCaml](https://opam.ocaml.org/packages/ocurl/) Written by Lars Nilsson and ygrek

[Pascal](https://web.archive.org/web/20030804091414/houston.quik.com/jkp/curlpas/) Free Pascal, Delphi and Kylix binding written by Jeffrey Pohlmeyer.

Perl: [WWW::Curl](https://github.com/szbalint/WWW--Curl) Maintained by Cris
Bailiff and Bálint Szilakszi,
[perl6-net-curl](https://github.com/azawawi/perl6-net-curl) by Ahmad M. Zawawi
[NET::Curl](https://metacpan.org/pod/Net::Curl) by Przemyslaw Iskra

[PHP](https://php.net/curl) Originally written by Sterling Hughes

[PostgreSQL](https://github.com/pramsey/pgsql-http) - HTTP client for PostgreSQL

[PureBasic](https://www.purebasic.com/documentation/http/index.html) uses libcurl in its "native" HTTP subsystem

[Python](http://pycurl.io/) PycURL by Kjetil Jacobsen

[R](https://cran.r-project.org/package=curl)

[Rexx](https://rexxcurl.sourceforge.io/) Written Mark Hessling

Added jni/curl/docs/ESNI.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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# TLS: ESNI support in curl and libcurl

## Summary

**ESNI** means **Encrypted Server Name Indication**, a TLS 1.3
extension which is currently the subject of an
[IETF Draft][tlsesni].

This file is intended to show the latest current state of ESNI support
in **curl** and **libcurl**.

At end of August 2019, an [experimental fork of curl][niallorcurl],
built using an [experimental fork of OpenSSL][sftcdopenssl], which in
turn provided an implementation of ESNI, was demonstrated
interoperating with a server belonging to the [DEfO
Project][defoproj].

Further sections here describe

-   resources needed for building and demonstrating **curl** support
    for ESNI,

-   progress to date,

-   TODO items, and

-   additional details of specific stages of the progress.

## Resources needed

To build and demonstrate ESNI support in **curl** and/or **libcurl**,
you will need

-   a TLS library, supported by **libcurl**, which implements ESNI;

-   an edition of **curl** and/or **libcurl** which supports the ESNI
    implementation of the chosen TLS library;

-   an environment for building and running **curl**, and at least
    building **OpenSSL**;

-   a server, supporting ESNI, against which to run a demonstration
    and perhaps a specific target URL;

-   some instructions.

The following set of resources is currently known to be available.

| Set  | Component    | Location                      | Remarks                                    |
|:-----|:-------------|:------------------------------|:-------------------------------------------|
| DEfO | TLS library  | [sftcd/openssl][sftcdopenssl] | Tag *esni-2019-08-30* avoids bleeding edge |
|      | curl fork    | [niallor/curl][niallorcurl]   | Tag *esni-2019-08-30* likewise             |
|      | instructions | [ESNI-README][niallorreadme]  |                                            |

## Progress

### PR 4011 (Jun 2019) expected in curl release 7.67.0 (Oct 2019)

-   Details [below](#pr4011);

-   New **curl** feature: `CURL_VERSION_ESNI`;

-   New configuration option: `--enable-esni`;

-   Build-time check for availability of resources needed for ESNI
    support;

-   Pre-processor symbol `USE_ESNI` for conditional compilation of
    ESNI support code, subject to configuration option and
    availability of needed resources.

## TODO

-   (next PR) Add libcurl options to set ESNI parameters.

-   (next PR) Add curl tool command line options to set ESNI parameters.

-   (WIP) Extend DoH functions so that published ESNI parameters can be
    retrieved from DNS instead of being required as options.

-   (WIP) Work with OpenSSL community to finalize ESNI API.

-   Track OpenSSL ESNI API in libcurl

-   Identify and implement any changes needed for CMake.

-   Optimize build-time checking of available resources.

-   Encourage ESNI support work on other TLS/SSL backends.

## Additional detail

### PR 4011

**TLS: Provide ESNI support framework for curl and libcurl**

The proposed change provides a framework to facilitate work to
implement ESNI support in curl and libcurl. It is not intended
either to provide ESNI functionality or to favour any particular
TLS-providing backend. Specifically, the change reserves a
feature bit for ESNI support (symbol `CURL_VERSION_ESNI`),
implements setting and reporting of this bit, includes dummy
book-keeping for the symbol, adds a build-time configuration
option (`--enable-esni`), provides an extensible check for
resources available to provide ESNI support, and defines a
compiler pre-processor symbol (`USE_ESNI`) accordingly.

Proposed-by: @niallor (Niall O'Reilly)\
Encouraged-by: @sftcd (Stephen Farrell)\
See-also: [this message](https://curl.haxx.se/mail/lib-2019-05/0108.html)

Limitations:
-   Book-keeping (symbols-in-versions) needs real release number, not 'DUMMY'.

-   Framework is incomplete, as it covers autoconf, but not CMake.

-   Check for available resources, although extensible, refers only to
    specific work in progress ([described
    here](https://github.com/sftcd/openssl/tree/master/esnistuff)) to
    implement ESNI for OpenSSL, as this is the immediate motivation
    for the proposed change.

## References

CloudFlare blog: [Encrypting SNI: Fixing One of the Core Internet Bugs][corebug]

Cloudflare blog: [Encrypt it or lose it: how encrypted SNI works][esniworks]

IETF Draft: [Encrypted Server Name Indication for TLS 1.3][tlsesni]

---

[tlsesni]:		https://datatracker.ietf.org/doc/draft-ietf-tls-esni/
[esniworks]:	https://blog.cloudflare.com/encrypted-sni/
[corebug]:		https://blog.cloudflare.com/esni/
[defoproj]:		https://defo.ie/
[sftcdopenssl]: https://github.com/sftcd/openssl/
[niallorcurl]:	https://github.com/niallor/curl/
[niallorreadme]: https://github.com/niallor/curl/blob/master/ESNI-README.md

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

29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
..
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
...
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119



120
121



# 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

................................................................................
     % ./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/









|







 







|


|









|


<
<
<
<
<
<
<
<
<







 







|

|







 







|

|

|

<
|
>
>
>
|
<
>
>
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
..
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
..
96
97
98
99
100
101
102
103
104
105
106
107
108

109
110
111
112
113

114
115

# ngtcp2 version

## Build

Build (patched) OpenSSL

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

Build nghttp3

................................................................................
     % ./configure --prefix=<somewhere2> --enable-lib-only
     % make
     % make install

Build ngtcp2

     % cd ..
     % git clone https://github.com/ngtcp2/ngtcp2
     % cd ngtcp2
     % autoreconf -i
     % ./configure PKG_CONFIG_PATH=<somewhere1>/lib/pkgconfig:<somewhere2>/lib/pkgconfig LDFLAGS="-Wl,-rpath,<somewhere1>/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










# 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
     % cd ..
     % mkdir -p .openssl/lib
     % 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

## Run

Use HTTP/3 directly:


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

Upgrade via Alt-Svc:

    curl --alt-svc altsvc.cache https://quic.aiortc.org/


See this [list of public HTTP/3 servers](https://bagder.github.io/HTTP3-test/)

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

3
4
5
6
7
8
9












10
11
12
13
14
15
16
..
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
## Installing Binary Packages

Lots of people download binary distributions of curl and libcurl. This
document does not describe how to install curl or libcurl using such a binary
package. This document describes how to compile, build and install curl and
libcurl from source code.













## Building from git

If you get your code off a git repository instead of a release tarball, see
the `GIT-INFO` file in the root directory for specific instructions on how to
proceed.

# Unix
................................................................................
If you have OpenSSL installed somewhere else (for example, `/opt/OpenSSL`) and
you have pkg-config installed, set the pkg-config path first, like this:

    env PKG_CONFIG_PATH=/opt/OpenSSL/lib/pkgconfig ./configure --with-ssl

Without pkg-config installed, use this:

   ./configure --with-ssl=/opt/OpenSSL

If you insist on forcing a build without SSL support, even though you may
have OpenSSL installed in your system, you can run configure like this:

   ./configure --without-ssl

If you have OpenSSL installed, but with the libraries in one place and the
header files somewhere else, you have to set the `LDFLAGS` and `CPPFLAGS`
environment variables prior to running configure.  Something like this should
work:

    CPPFLAGS="-I/path/to/ssl/include" LDFLAGS="-L/path/to/ssl/lib" ./configure







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







 







|




|







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
..
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
## Installing Binary Packages

Lots of people download binary distributions of curl and libcurl. This
document does not describe how to install curl or libcurl using such a binary
package. This document describes how to compile, build and install curl and
libcurl from source code.

## Building using vcpkg

You can download and install curl and libcurl using the [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager:

    git clone https://github.com/Microsoft/vcpkg.git
    cd vcpkg
    ./bootstrap-vcpkg.sh
    ./vcpkg integrate install
    vcpkg install curl[tool]

The curl port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.

## Building from git

If you get your code off a git repository instead of a release tarball, see
the `GIT-INFO` file in the root directory for specific instructions on how to
proceed.

# Unix
................................................................................
If you have OpenSSL installed somewhere else (for example, `/opt/OpenSSL`) and
you have pkg-config installed, set the pkg-config path first, like this:

    env PKG_CONFIG_PATH=/opt/OpenSSL/lib/pkgconfig ./configure --with-ssl

Without pkg-config installed, use this:

    ./configure --with-ssl=/opt/OpenSSL

If you insist on forcing a build without SSL support, even though you may
have OpenSSL installed in your system, you can run configure like this:

    ./configure --without-ssl

If you have OpenSSL installed, but with the libraries in one place and the
header files somewhere else, you have to set the `LDFLAGS` and `CPPFLAGS`
environment variables prior to running configure.  Something like this should
work:

    CPPFLAGS="-I/path/to/ssl/include" LDFLAGS="-L/path/to/ssl/lib" ./configure

Changes to jni/curl/docs/KNOWN_BUGS.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
..
51
52
53
54
55
56
57

58
59
60
61
62
63
64
..
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
...
424
425
426
427
428
429
430







431
432
433
434
435
436
437
...
721
722
723
724
725
726
727



728
729
730
731
732
733
734

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
................................................................................
 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
 5.9 Utilize Requires.private directives in libcurl.pc


 6. Authentication
 6.1 NTLM authentication and unicode
 6.2 MIT Kerberos for Windows build
 6.3 NTLM in system context uses wrong name
 6.4 Negotiate and Kerberos V5 need a fake user name
 6.5 NTLM doesn't support password with § character
................................................................................
 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

 14 DICT
 14.1 DICT responses show the underlying protocol

==============================================================================

1. HTTP

1.1 CURLFORM_CONTENTLEN in an array

 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.

................................................................................
 separate variable that only after all library checks have been performed gets
 appended to LDFLAGS.

5.9 Utilize Requires.private directives in libcurl.pc

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








6. Authentication

6.1 NTLM authentication and unicode

 NTLM authentication involving unicode user name or password only works
 properly if built with UNICODE defined together with the WinSSL/Schannel
 backend. The original problem was mentioned in:
................................................................................
 descriptors for a single easy handle (currently limited to 5).

 Generic LDAP is synchronous: OK.

 See https://github.com/curl/curl/issues/622 and
     https://curl.haxx.se/mail/lib-2016-01/0101.html





13. TCP/IP

13.1 --interface for ipv6 binds to unusable IP address

 Since IPv6 provides a lot of addresses with different scope, binding to an
 IPv6 address needs to take the proper care so that it doesn't bind to a







<







 







>







 







>











<
<
<
<
<
<
<
<
<







 







>
>
>
>
>
>
>







 







>
>
>







8
9
10
11
12
13
14

15
16
17
18
19
20
21
..
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
..
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
...
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
...
720
721
722
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.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
................................................................................
 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
 5.9 Utilize Requires.private directives in libcurl.pc
 5.10 IDN tests failing on Windows / MSYS2

 6. Authentication
 6.1 NTLM authentication and unicode
 6.2 MIT Kerberos for Windows build
 6.3 NTLM in system context uses wrong name
 6.4 Negotiate and Kerberos V5 need a fake user name
 6.5 NTLM doesn't support password with § character
................................................................................
 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
 12.2 LDAP on Windows does authentication wrong?

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

 14 DICT
 14.1 DICT responses show the underlying protocol

==============================================================================

1. HTTP










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.

................................................................................
 separate variable that only after all library checks have been performed gets
 appended to LDFLAGS.

5.9 Utilize Requires.private directives in libcurl.pc

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

5.10 IDN tests failing on Windows / MSYS2

 It seems like MSYS2 does some UTF-8-to-something-else conversion for Windows
 compatibility.

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

6. Authentication

6.1 NTLM authentication and unicode

 NTLM authentication involving unicode user name or password only works
 properly if built with UNICODE defined together with the WinSSL/Schannel
 backend. The original problem was mentioned in:
................................................................................
 descriptors for a single easy handle (currently limited to 5).

 Generic LDAP is synchronous: OK.

 See https://github.com/curl/curl/issues/622 and
     https://curl.haxx.se/mail/lib-2016-01/0101.html

12.2 LDAP on Windows does authentication wrong?

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

13. TCP/IP

13.1 --interface for ipv6 binds to unusable IP address

 Since IPv6 provides a lot of addresses with different scope, binding to an
 IPv6 address needs to take the proper care so that it doesn't bind to a

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

49
50
51
52
53
54
55

56
57
58
59
60
61
62
 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                                \







>







49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 CHECKSRC.md                                    \
 CIPHERS.md                                     \
 CMakeLists.txt                                 \
 CODE_OF_CONDUCT.md                             \
 CODE_STYLE.md                                  \
 CONTRIBUTE.md                                  \
 DEPRECATE.md                                   \
 ESNI.md                                        \
 EXPERIMENTAL.md                                \
 FAQ                                            \
 FEATURES                                       \
 GOVERNANCE.md                                  \
 HELP-US.md                                     \
 HISTORY.md                                     \
 HTTP-COOKIES.md                                \

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

479
480
481
482
483
484
485

486
487
488
489
490
491
492
 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                                \







>







479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
 CHECKSRC.md                                    \
 CIPHERS.md                                     \
 CMakeLists.txt                                 \
 CODE_OF_CONDUCT.md                             \
 CODE_STYLE.md                                  \
 CONTRIBUTE.md                                  \
 DEPRECATE.md                                   \
 ESNI.md                                        \
 EXPERIMENTAL.md                                \
 FAQ                                            \
 FEATURES                                       \
 GOVERNANCE.md                                  \
 HELP-US.md                                     \
 HISTORY.md                                     \
 HTTP-COOKIES.md                                \

Changes to jni/curl/docs/THANKS.

47
48
49
50
51
52
53

54
55
56
57
58
59
60

61
62
63
64
65
66
67
...
112
113
114
115
116
117
118

119
120
121
122
123
124
125
...
173
174
175
176
177
178
179

180
181
182

183
184
185
186
187
188
189
...
253
254
255
256
257
258
259

260
261
262
263
264
265
266
...
300
301
302
303
304
305
306

307

308
309
310
311
312
313
314
...
378
379
380
381
382
383
384

385
386
387
388
389
390
391
...
432
433
434
435
436
437
438

439
440
441
442
443
444
445
...
516
517
518
519
520
521
522

523
524
525
526
527
528
529
...
585
586
587
588
589
590
591

592
593
594
595
596
597
598
...
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
...
653
654
655
656
657
658
659

660
661
662
663
664
665
666
...
723
724
725
726
727
728
729

730
731
732
733
734
735
736
...
740
741
742
743
744
745
746

747
748
749
750
751
752
753
...
809
810
811
812
813
814
815

816
817
818
819
820
821
822
...
836
837
838
839
840
841
842

843
844
845
846
847
848
849
...
886
887
888
889
890
891
892

893
894
895
896
897
898
899
....
1066
1067
1068
1069
1070
1071
1072

1073
1074
1075
1076
1077
1078
1079
....
1103
1104
1105
1106
1107
1108
1109

1110
1111
1112
1113
1114
1115
1116
....
1147
1148
1149
1150
1151
1152
1153

1154
1155
1156
1157
1158
1159
1160
....
1279
1280
1281
1282
1283
1284
1285

1286
1287
1288
1289
1290
1291
1292
1293
1294

1295
1296
1297
1298
1299
1300
1301
....
1366
1367
1368
1369
1370
1371
1372

1373

1374
1375
1376
1377
1378
1379
1380
....
1411
1412
1413
1414
1415
1416
1417

1418
1419
1420
1421
1422
1423
1424
....
1434
1435
1436
1437
1438
1439
1440

1441
1442
1443
1444
1445
1446
1447
1448

1449
1450
1451
1452
1453
1454
1455
....
1559
1560
1561
1562
1563
1564
1565

1566
1567
1568
1569
1570
1571
1572
....
1622
1623
1624
1625
1626
1627
1628

1629
1630
1631
1632
1633
1634
1635
....
1665
1666
1667
1668
1669
1670
1671

1672
1673
1674
1675
1676
1677
1678
....
1710
1711
1712
1713
1714
1715
1716

1717
1718

1719
1720
1721
1722
1723
1724
1725
....
1823
1824
1825
1826
1827
1828
1829

1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842

1843
1844
1845
1846
1847
1848
1849
1850
1851
1852

1853
1854
1855
1856
1857
1858
1859
....
1895
1896
1897
1898
1899
1900
1901

1902
1903
1904
1905
1906
1907
1908
....
1962
1963
1964
1965
1966
1967
1968

1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979

1980
1981
1982
1983
1984
1985
1986

1987
1988
1989
1990
1991
1992
1993
Alessandro Vesely
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
Alex aka WindEagle
Alexander Beedie
Alexander Dyagilev
Alexander Elgert
Alexander Klauer
................................................................................
Andreas Wurf
Andrei Benea
Andrei Cipu
Andrei Karas
Andrei Kurushin
Andrei Neculau
Andrei Sedoi

Andrei Virtosu
Andrej E Baranov
Andrew Benham
Andrew Biggs
Andrew Bushnell
Andrew Francis
Andrew Fuller
................................................................................
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
Ben Darnell
Ben Greear
Ben Kohler
Ben Madsen
Ben Noordhuis
................................................................................
Bruce Mitchener
Bruce Stephens
Bruno Grasselli
Bruno Thomsen
Bruno de Carvalho
Bryan Henderson
Bryan Kemp

Byrial Jensen
Caleb Raitto
Cameron Kaiser
Cameron MacMinn
Camille Moncelier
Caolan McNamara
Carie Pointer
................................................................................
Christian Krause
Christian Kurz
Christian Robottom Reis
Christian Schmitz
Christian Stewart
Christian Vogt
Christian Weisgerber

Christophe Demory

Christophe Legry
Christopher Conroy
Christopher Head
Christopher Palow
Christopher R. Palmer
Christopher Stone
Chungtsun Li
................................................................................
Daniel Lublin
Daniel Melani
Daniel Mentz
Daniel Romero
Daniel Schauenberg
Daniel Seither
Daniel Shahaf

Daniel Steinberg
Daniel Stenberg
Daniel Theron
Daniel at touchtunes
Daphne Luong
Dario Nieuwenhuis
Dario Weißer
................................................................................
David Tarendash
David Thiel
David Walser
David Woodhouse
David Wright
David Yan
Dengminwen

Denis Feklushkin
Denis Ollier
Dennis Clarke
Derek Higgins
Desmond O. Chang
Detlef Schmier
Dheeraj Sangamkar
................................................................................
Eldar Zaitov
Eli Schwartz
Elia Tufarolo
Elliot Saba
Ellis Pritchard
Elmira A Semenova
Emanuele Bovisio

Emil Lerner
Emil Romanus
Emiliano Ida
Emmanuel Tychon
Enrico Scholz
Enrik Berkhan
Eramoto Masaya
................................................................................
Florian Schoppmann
Florian Weimer
Florin Petriuc
Forrest Cahoon
Francisco Moraes
Francisco Sedano
Francois Petitjean

Frank Denis
Frank Gevaerts
Frank Hempel
Frank Keeney
Frank McGeough
Frank Meier
Frank Ticheler
................................................................................
Gaël Portay
Geeknik Labs
Geoff Beier
Georg Horn
Georg Huettenegger
Georg Lippitsch
Georg Wicherski

Gerd v. Egidy
Gergely Nagy
Gerhard Herre
Gerrit Bruchhäuser
Ghennadi Procopciuc
Giancarlo Formicuccia
Giaslas Georgios
Gil Weber
Gilad
Gilbert Ramirez Jr.
Gilles Blanc

Giorgos Oikonomou
Gisle Vanem
GitYuanQu on github
Giuseppe Attardi
Giuseppe D'Ambrosio
Giuseppe Persico
Glen A Johnson Jr.
................................................................................
Greg Morse
Greg Onufer
Greg Pratt
Greg Rowe
Greg Zavertnik
Gregory Nicholls
Gregory Szorc

Grigory Entin
Guenole Bescon
Guido Berhoerster
Guillaume Arluison
Gunter Knauf
Gustaf Hui
Gustavo Grieco
................................................................................
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
................................................................................
Ishan SinghLevett
Ithubg on github
Ivan Avdeev
Ivo Bellin Salarin
Jack Zhang
Jackarain on github
Jacky Lam

Jacob Meuser
Jacob Moshenko
Jactry Zeng
Jad Chamcham
Jaime Fullaondo
Jakub Wilk
Jakub Zakrzewski
................................................................................
Jeff Johnson
Jeff King
Jeff Lawson
Jeff Phillips
Jeff Pohlmeyer
Jeff Weber
Jeffrey Walton

Jens Rantil
Jens Schleusener
Jeremie Rapin
Jeremy Friesner
Jeremy Huddleston
Jeremy Lainé
Jeremy Lin
................................................................................
Jesse Tan
Jie He
Jim Drash
Jim Freeman
Jim Fuller
Jim Hollinger
Jim Meyering

Jiri Dvorak
Jiri Hruska
Jiri Jaburek
Jiří Malák
Jocelyn Jaubert
Joe Halpin
Joe Malicki
................................................................................
John Suprock
John V. Chow
John Wanghui
John Weismiller
John Wilkinson
John-Mark Bell
Johnny Luong

Jon DeVree
Jon Grubbs
Jon Nelson
Jon Sargeant
Jon Seymour
Jon Spencer
Jon Torrey
................................................................................
Loic Dachary
Loren Kirkby
Luan Cestari
Luca Altea
Luca Boccassi
Lucas Adamski
Lucas Pardue

Ludek Finstrle
Ludovico Cavedon
Ludwig Nussel
Lukas Ruzicka
Lukasz Czekierda
Luke Amery
Luke Call
................................................................................
Marc Doughty
Marc Hesse
Marc Hörsken
Marc Kleine-Budde
Marc Renault
Marc Schlatter
Marc-Antoine Perennou

Marcel Raad
Marcel Roelofs
Marcelo Echeverria
Marcelo Juchem
Marcin Adamski
Marcin Gryszkalis
Marcin Konicki
................................................................................
Martijn Koster
Martin Ankerl
Martin C. Martin
Martin Drasar
Martin Dreher
Martin Frodl
Martin Galvan

Martin Hager
Martin Hedenfalk
Martin Jansen
Martin Kammerhofer
Martin Kepplinger
Martin Lemke
Martin Skinner
................................................................................
NTMan on Github
Nach M. S.
Nagai H
Nate Prewitt
Nathan Coulter
Nathan O'Sullivan
Nathanael Nerode

Nathaniel Waisbrot
Naveen Chandran
Naveen Noel
Neal Poole
Nehal J Wani
Neil Bowers
Neil Dunbar
Neil Kolban
Neil Spring

Nic Roets
Nicholas Maniscalco
Nick Draffen
Nick Gimbrone
Nick Humfrey
Nick Miyake
Nick Zitzmann
................................................................................
Patrick Rapin
Patrick Schlangen
Patrick Scott
Patrick Smith
Patrick Watson
Patrik Thunstrom
Pau Garcia i Quiles

Paul Donohue

Paul Groke
Paul Harrington
Paul Harris
Paul Howarth
Paul Joyce
Paul Marks
Paul Marquis
................................................................................
Peter Laser
Peter O'Gorman
Peter Pentchev
Peter Piekarski
Peter Silva
Peter Simonyi
Peter Su

Peter Sylvester
Peter Todd
Peter Varga
Peter Verhas
Peter Wang
Peter Wu
Peter Wullinger
................................................................................
Phil Pellouchoud
Philip Craig
Philip Gladstone
Philip Langdale
Philip Prindeville
Philipp Waehnert
Philippe Hameau

Philippe Raoult
Philippe Vaucher
Pierre
Pierre Brico
Pierre Chapuis
Pierre Joye
Pierre Ynard
Piotr Dobrogost

Po-Chuan Hsieh
Pooyan McSporran
Poul T Lomholt
Pramod Sharma
Prash Dush
Praveen Pvs
Priyanka Shah
................................................................................
Rod Widdowson
Rodger Combs
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
................................................................................
Scott Davis
Scott McCreary
Sean Boudreau
Sean Burford
Sean MacLennan
Sean Miller
Sebastiaan van Erk

Sebastian Mundry
Sebastian Pohlschmidt
Sebastian Rasmussen
Senthil Raja Velu
Sergei Kuzmin
Sergei Nikulov
Sergey Ogryzkov
................................................................................
Simon Legner
Simon Liu
Simon Warta
Somnath Kundu
Song Ma
Sonia Subramanian
Spacen Jasset

Spiridonoff A.V
Spork Schivago
Stadler Stephan
Stan van de Burgt
Stanislav Ivochkin
Stanislav Zidek
Stefan Agner
................................................................................
Steve Roskowski
Steve Walch
Steven Bazyl
Steven G. Johnson
Steven Gu
Steven M. Schweda
Steven Parkes

Stoned Elipot
Stuart Henderson

Sune Ahlgren
Sunny Purushe
Sven Anders
Sven Blumenstein
Sven Neuhaus
Sven Wegener
Svyatoslav Mishyn
................................................................................
Torben Dannhauer
Torsten Foertsch
Toshio Kuratomi
Toshiyuki Maezawa
Traian Nicolescu
Travis Burtrum
Travis Obenhaus

Troels Walsted Hansen
Troy Engel
Tseng Jun
Tuomo Rinne
Tupone Alfredo
Tyler Hall
Török Edwin
Ulf Härnhammar
Ulf Samuelsson
Ulrich Doehner
Ulrich Telle
Ulrich Zadow
Valentin David

Vasiliy Faronov
Vasily Lobaskin
Vasy Okhin
Venkat Akella
Venkataramana Mokkapati
Vicente Garcia
Victor Snezhko
Vijay Panghal
Vikram Saxena
Viktor Szakats

Ville Skyttä
Vilmos Nebehaj
Vincas Razma
Vincent Bronner
Vincent Le Normand
Vincent Penquerc'h
Vincent Sanders
................................................................................
Xiangbin Li
XmiliaH on github
Yaakov Selkowitz
Yang Tse
Yarram Sunil
Yasuharu Yamada
Yasuhiro Matsumoto

Yehezkel Horowitz
Yehoshua Hershberg
Yi Huang
Yiming Jing
Yingwei Liu
Yonggang Luo
Yousuke Kimoto
................................................................................
jakirkham on github
jasal82 on github
jnbr on github
jonrumsey on github
joshhe on github
jungle-boogie on github
jveazey on github

ka7 on github
kreshano 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







>







>







 







>







 







>



>







 







>







 







>

>







 







>







 







>







 







>







 







>







 







>











>







 







>







 







>







 







>







 







>







 







>







 







>







 







>







 







>







 







>







 







>









>







 







>

>







 







>







 







>








>







 







>







 







>







 







>







 







>


>







 







>













>










>







 







>







 







>











>







>







47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
...
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
...
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
...
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
...
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
...
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
...
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
...
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
...
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
...
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
...
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
...
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
...
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
...
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
...
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
...
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
....
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
....
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
....
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
....
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
....
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
....
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
....
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
....
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
....
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
....
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
....
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
....
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
....
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
....
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
Alessandro Vesely
Alex Baines
Alex Bligh
Alex Chan
Alex Fishman
Alex Grebenschikov
Alex Gruz
Alex Konev
Alex Malinovich
Alex Mayorga
Alex McLellan
Alex Neblett
Alex Nichols
Alex Potapenko
Alex Rousskov
Alex Samorukov
Alex Suykov
Alex Vinnik
Alex aka WindEagle
Alexander Beedie
Alexander Dyagilev
Alexander Elgert
Alexander Klauer
................................................................................
Andreas Wurf
Andrei Benea
Andrei Cipu
Andrei Karas
Andrei Kurushin
Andrei Neculau
Andrei Sedoi
Andrei Valeriu BICA
Andrei Virtosu
Andrej E Baranov
Andrew Benham
Andrew Biggs
Andrew Bushnell
Andrew Francis
Andrew Fuller
................................................................................
Ayoub Boudhar
Balaji Parasuram
Balaji S Rao
Balaji Salunke
Balazs Kovacsics
Balint Szilakszi
Barry Abrahamson
Barry Pollard
Bart Whiteley
Bas Mevissen
Bas van Schaik
Bastien Bouclet
Basuke Suzuki
Ben Boeckel
Ben Darnell
Ben Greear
Ben Kohler
Ben Madsen
Ben Noordhuis
................................................................................
Bruce Mitchener
Bruce Stephens
Bruno Grasselli
Bruno Thomsen
Bruno de Carvalho
Bryan Henderson
Bryan Kemp
Bylon2 on github
Byrial Jensen
Caleb Raitto
Cameron Kaiser
Cameron MacMinn
Camille Moncelier
Caolan McNamara
Carie Pointer
................................................................................
Christian Krause
Christian Kurz
Christian Robottom Reis
Christian Schmitz
Christian Stewart
Christian Vogt
Christian Weisgerber
Christoph M. Becker
Christophe Demory
Christophe Dervieux
Christophe Legry
Christopher Conroy
Christopher Head
Christopher Palow
Christopher R. Palmer
Christopher Stone
Chungtsun Li
................................................................................
Daniel Lublin
Daniel Melani
Daniel Mentz
Daniel Romero
Daniel Schauenberg
Daniel Seither
Daniel Shahaf
Daniel Silverstone
Daniel Steinberg
Daniel Stenberg
Daniel Theron
Daniel at touchtunes
Daphne Luong
Dario Nieuwenhuis
Dario Weißer
................................................................................
David Tarendash
David Thiel
David Walser
David Woodhouse
David Wright
David Yan
Dengminwen
Denis Chaplygin
Denis Feklushkin
Denis Ollier
Dennis Clarke
Derek Higgins
Desmond O. Chang
Detlef Schmier
Dheeraj Sangamkar
................................................................................
Eldar Zaitov
Eli Schwartz
Elia Tufarolo
Elliot Saba
Ellis Pritchard
Elmira A Semenova
Emanuele Bovisio
Emil Engler
Emil Lerner
Emil Romanus
Emiliano Ida
Emmanuel Tychon
Enrico Scholz
Enrik Berkhan
Eramoto Masaya
................................................................................
Florian Schoppmann
Florian Weimer
Florin Petriuc
Forrest Cahoon
Francisco Moraes
Francisco Sedano
Francois Petitjean
Francois Rivard
Frank Denis
Frank Gevaerts
Frank Hempel
Frank Keeney
Frank McGeough
Frank Meier
Frank Ticheler
................................................................................
Gaël Portay
Geeknik Labs
Geoff Beier
Georg Horn
Georg Huettenegger
Georg Lippitsch
Georg Wicherski
George Liu
Gerd v. Egidy
Gergely Nagy
Gerhard Herre
Gerrit Bruchhäuser
Ghennadi Procopciuc
Giancarlo Formicuccia
Giaslas Georgios
Gil Weber
Gilad
Gilbert Ramirez Jr.
Gilles Blanc
Gilles Vollant
Giorgos Oikonomou
Gisle Vanem
GitYuanQu on github
Giuseppe Attardi
Giuseppe D'Ambrosio
Giuseppe Persico
Glen A Johnson Jr.
................................................................................
Greg Morse
Greg Onufer
Greg Pratt
Greg Rowe
Greg Zavertnik
Gregory Nicholls
Gregory Szorc
Griffin Downs
Grigory Entin
Guenole Bescon
Guido Berhoerster
Guillaume Arluison
Gunter Knauf
Gustaf Hui
Gustavo Grieco
................................................................................
Igor Makarov
Igor Novoseltsev
Igor Polyakov
Ihor Karpenko
Iida Yosiaki
Ilguiz Latypov
Ilja van Sprundel
Ilya Kosarev
Immanuel Gregoire
Inca R
Ingmar Runge
Ingo Ralf Blum
Ingo Wilken
Irfan Adilovic
Ironbars13 on github
................................................................................
Ishan SinghLevett
Ithubg on github
Ivan Avdeev
Ivo Bellin Salarin
Jack Zhang
Jackarain on github
Jacky Lam
Jacob Barthelmeh
Jacob Meuser
Jacob Moshenko
Jactry Zeng
Jad Chamcham
Jaime Fullaondo
Jakub Wilk
Jakub Zakrzewski
................................................................................
Jeff Johnson
Jeff King
Jeff Lawson
Jeff Phillips
Jeff Pohlmeyer
Jeff Weber
Jeffrey Walton
Jens Finkhaeuser
Jens Rantil
Jens Schleusener
Jeremie Rapin
Jeremy Friesner
Jeremy Huddleston
Jeremy Lainé
Jeremy Lin
................................................................................
Jesse Tan
Jie He
Jim Drash
Jim Freeman
Jim Fuller
Jim Hollinger
Jim Meyering
Jimmy Gaussen
Jiri Dvorak
Jiri Hruska
Jiri Jaburek
Jiří Malák
Jocelyn Jaubert
Joe Halpin
Joe Malicki
................................................................................
John Suprock
John V. Chow
John Wanghui
John Weismiller
John Wilkinson
John-Mark Bell
Johnny Luong
Jojojov on github
Jon DeVree
Jon Grubbs
Jon Nelson
Jon Sargeant
Jon Seymour
Jon Spencer
Jon Torrey
................................................................................
Loic Dachary
Loren Kirkby
Luan Cestari
Luca Altea
Luca Boccassi
Lucas Adamski
Lucas Pardue
Lucas Severo
Ludek Finstrle
Ludovico Cavedon
Ludwig Nussel
Lukas Ruzicka
Lukasz Czekierda
Luke Amery
Luke Call
................................................................................
Marc Doughty
Marc Hesse
Marc Hörsken
Marc Kleine-Budde
Marc Renault
Marc Schlatter
Marc-Antoine Perennou
Marcel Hernandez
Marcel Raad
Marcel Roelofs
Marcelo Echeverria
Marcelo Juchem
Marcin Adamski
Marcin Gryszkalis
Marcin Konicki
................................................................................
Martijn Koster
Martin Ankerl
Martin C. Martin
Martin Drasar
Martin Dreher
Martin Frodl
Martin Galvan
Martin Gartner
Martin Hager
Martin Hedenfalk
Martin Jansen
Martin Kammerhofer
Martin Kepplinger
Martin Lemke
Martin Skinner
................................................................................
NTMan on Github
Nach M. S.
Nagai H
Nate Prewitt
Nathan Coulter
Nathan O'Sullivan
Nathanael Nerode
Nathaniel J. Smith
Nathaniel Waisbrot
Naveen Chandran
Naveen Noel
Neal Poole
Nehal J Wani
Neil Bowers
Neil Dunbar
Neil Kolban
Neil Spring
Niall O'Reilly
Nic Roets
Nicholas Maniscalco
Nick Draffen
Nick Gimbrone
Nick Humfrey
Nick Miyake
Nick Zitzmann
................................................................................
Patrick Rapin
Patrick Schlangen
Patrick Scott
Patrick Smith
Patrick Watson
Patrik Thunstrom
Pau Garcia i Quiles
Paul B. Omta
Paul Donohue
Paul Dreik
Paul Groke
Paul Harrington
Paul Harris
Paul Howarth
Paul Joyce
Paul Marks
Paul Marquis
................................................................................
Peter Laser
Peter O'Gorman
Peter Pentchev
Peter Piekarski
Peter Silva
Peter Simonyi
Peter Su
Peter Sumatra
Peter Sylvester
Peter Todd
Peter Varga
Peter Verhas
Peter Wang
Peter Wu
Peter Wullinger
................................................................................
Phil Pellouchoud
Philip Craig
Philip Gladstone
Philip Langdale
Philip Prindeville
Philipp Waehnert
Philippe Hameau
Philippe Marguinaud
Philippe Raoult
Philippe Vaucher
Pierre
Pierre Brico
Pierre Chapuis
Pierre Joye
Pierre Ynard
Piotr Dobrogost
Piotr Komborski
Po-Chuan Hsieh
Pooyan McSporran
Poul T Lomholt
Pramod Sharma
Prash Dush
Praveen Pvs
Priyanka Shah
................................................................................
Rod Widdowson
Rodger Combs
Rodney Simmons
Rodric Glaser
Rodrigo Silva
Roger Leigh
Roland Blom
Roland Hieber
Roland Krikava
Roland Zimmermann
Rolf Eike Beer
Rolland Dudemaine
Romain Coltel
Romain Fliedel
Romain Geissler
................................................................................
Scott Davis
Scott McCreary
Sean Boudreau
Sean Burford
Sean MacLennan
Sean Miller
Sebastiaan van Erk
Sebastian Haglund
Sebastian Mundry
Sebastian Pohlschmidt
Sebastian Rasmussen
Senthil Raja Velu
Sergei Kuzmin
Sergei Nikulov
Sergey Ogryzkov
................................................................................
Simon Legner
Simon Liu
Simon Warta
Somnath Kundu
Song Ma
Sonia Subramanian
Spacen Jasset
Spezifant on github
Spiridonoff A.V
Spork Schivago
Stadler Stephan
Stan van de Burgt
Stanislav Ivochkin
Stanislav Zidek
Stefan Agner
................................................................................
Steve Roskowski
Steve Walch
Steven Bazyl
Steven G. Johnson
Steven Gu
Steven M. Schweda
Steven Parkes
Stian Soiland-Reyes
Stoned Elipot
Stuart Henderson
SumatraPeter on github
Sune Ahlgren
Sunny Purushe
Sven Anders
Sven Blumenstein
Sven Neuhaus
Sven Wegener
Svyatoslav Mishyn
................................................................................
Torben Dannhauer
Torsten Foertsch
Toshio Kuratomi
Toshiyuki Maezawa
Traian Nicolescu
Travis Burtrum
Travis Obenhaus
Trivikram Kamat
Troels Walsted Hansen
Troy Engel
Tseng Jun
Tuomo Rinne
Tupone Alfredo
Tyler Hall
Török Edwin
Ulf Härnhammar
Ulf Samuelsson
Ulrich Doehner
Ulrich Telle
Ulrich Zadow
Valentin David
Valerii Zapodovnikov
Vasiliy Faronov
Vasily Lobaskin
Vasy Okhin
Venkat Akella
Venkataramana Mokkapati
Vicente Garcia
Victor Snezhko
Vijay Panghal
Vikram Saxena
Viktor Szakats
Vilhelm Prytz
Ville Skyttä
Vilmos Nebehaj
Vincas Razma
Vincent Bronner
Vincent Le Normand
Vincent Penquerc'h
Vincent Sanders
................................................................................
Xiangbin Li
XmiliaH on github
Yaakov Selkowitz
Yang Tse
Yarram Sunil
Yasuharu Yamada
Yasuhiro Matsumoto
Yechiel Kalmenson
Yehezkel Horowitz
Yehoshua Hershberg
Yi Huang
Yiming Jing
Yingwei Liu
Yonggang Luo
Yousuke Kimoto
................................................................................
jakirkham on github
jasal82 on github
jnbr on github
jonrumsey on github
joshhe on github
jungle-boogie on github
jveazey on github
jzinn on github
ka7 on github
kreshano 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
momala454 on github
moohoorama on github
nedres on github
neex on github
neheb on github
nevv on HackerOne/curl
niallor on github
nianxuejie on github
nico-abram on github
niner on github
nk
nopjmp on github
olesteban on github
omau on github
osabc on github
ovidiu-benea on github

Changes to jni/curl/docs/TODO.

14
15
16
17
18
19
20

21
22
23
24
25
26
27
...
118
119
120
121
122
123
124

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






184
185
186
187
188
189
190
...
788
789
790
791
792
793
794










795
796
797
798
799
800
801
 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
................................................................................
 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
................................................................................
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
................................................................................
 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







>







 







>







 







>
>
>
>
>
>







 







>
>
>
>
>
>
>
>
>
>







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
...
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
...
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
...
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
 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 Consult %APPDATA% also for .netrc
 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
................................................................................
 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 Handle growing SFTP files
 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
................................................................................
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 Consult %APPDATA% also for .netrc

 %APPDATA%\.netrc is not considered when running on Windows. Shouldn't it?

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

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
................................................................................
 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 Handle growing SFTP files

 The SFTP code in libcurl checks the file size *before* a transfer starts and
 then proceeds to transfer exactly that amount of data. If the remote file
 grows while the tranfer is in progress libcurl won't notice and will not
 adapt. The OpenSSH SFTP command line tool does and libcurl could also just
 attempt to download more to see if there is more to get...

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

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

Changes to jni/curl/docs/cmdline-opts/Makefile.in.

460
461
462
463
464
465
466

467
468
469
470
471
472
473

474
475
476
477
478
479
480
  netrc-file.d					\
  netrc-optional.d				\
  netrc.d					\
  next.d no-alpn.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					\







>





<

>







460
461
462
463
464
465
466
467
468
469
470
471
472

473
474
475
476
477
478
479
480
481
  netrc-file.d					\
  netrc-optional.d				\
  netrc.d					\
  next.d no-alpn.d				\
  no-buffer.d					\
  no-keepalive.d				\
  no-npn.d					\
  no-progress-meter.d                           \
  no-sessionid.d				\
  noproxy.d					\
  ntlm.d ntlm-wb.d				\
  oauth2-bearer.d				\
  output.d                                      \

  parallel.d                                    \
  pass.d                			\
  parallel-max.d                                \
  path-as-is.d					\
  pinnedpubkey.d				\
  post301.d					\
  post302.d					\
  post303.d					\
  preproxy.d					\

Changes to jni/curl/docs/cmdline-opts/Makefile.inc.

93
94
95
96
97
98
99

100
101
102
103
104
105
106

107
108
109
110
111
112
113
  netrc-file.d					\
  netrc-optional.d				\
  netrc.d					\
  next.d no-alpn.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					\







>





<

>







93
94
95
96
97
98
99
100
101
102
103
104
105

106
107
108
109
110
111
112
113
114
  netrc-file.d					\
  netrc-optional.d				\
  netrc.d					\
  next.d no-alpn.d				\
  no-buffer.d					\
  no-keepalive.d				\
  no-npn.d					\
  no-progress-meter.d                           \
  no-sessionid.d				\
  noproxy.d					\
  ntlm.d ntlm-wb.d				\
  oauth2-bearer.d				\
  output.d                                      \

  parallel.d                                    \
  pass.d                			\
  parallel-max.d                                \
  path-as-is.d					\
  pinnedpubkey.d				\
  post301.d					\
  post302.d					\
  post303.d					\
  preproxy.d					\

Added jni/curl/docs/cmdline-opts/no-progress-meter.d.





















>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
Long: no-progress-meter
Help: Do not show the progress meter
See-also: verbose silent
Added: 7.67.0
---
Option to switch off the progress meter output without muting or otherwise
affecting warning and informational messages like --silent does.

Note that this is the negated option name documented. You can thus use
--progress-meter to enable the progress meter again.

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.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







|







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.67.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
....
1441
1442
1443
1444
1445
1446
1447








1448
1449
1450
1451
1452
1453
1454
.\" * 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
................................................................................
--keepalive to enforce keepalive.
.IP "--no-npn"
(HTTPS) Disable the NPN TLS extension. NPN is enabled by default if libcurl was built
with an SSL library that supports NPN. NPN is used by a libcurl that supports
HTTP/2 to negotiate HTTP/2 support with the server during https sessions.

See also \fI--no-alpn\fP and \fI--http2\fP. \fI--no-npn\fP requires that the underlying libcurl was built to support TLS. Added in 7.36.0.








.IP "--no-sessionid"
(TLS) Disable curl's use of SSL session-ID caching.  By default all transfers are
done using the cache. Note that while nothing should ever get hurt by
attempting to reuse SSL session-IDs, there seem to be broken SSL
implementations in the wild that may require you to disable this in order for
you to succeed.








|







 







>
>
>
>
>
>
>
>







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
....
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
.\" * 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.67.0" "Curl Manual"

.SH NAME
curl \- transfer a URL
.SH SYNOPSIS
.B curl [options / URLs]
.SH DESCRIPTION
.B curl
................................................................................
--keepalive to enforce keepalive.
.IP "--no-npn"
(HTTPS) Disable the NPN TLS extension. NPN is enabled by default if libcurl was built
with an SSL library that supports NPN. NPN is used by a libcurl that supports
HTTP/2 to negotiate HTTP/2 support with the server during https sessions.

See also \fI--no-alpn\fP and \fI--http2\fP. \fI--no-npn\fP requires that the underlying libcurl was built to support TLS. Added in 7.36.0.
.IP "--no-progress-meter"
Option to switch off the progress meter output without muting or otherwise
affecting warning and informational messages like \fI-s, --silent\fP does.

Note that this is the negated option name documented. You can thus use
--progress-meter to enable the progress meter again.

See also \fI-v, --verbose\fP and \fI-s, --silent\fP. Added in 7.67.0.
.IP "--no-sessionid"
(TLS) Disable curl's use of SSL session-ID caching.  By default all transfers are
done using the cache. Note that while nothing should ever get hurt by
attempting to reuse SSL session-IDs, there seem to be broken SSL
implementations in the wild that may require you to disable this in order for
you to succeed.

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

1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
# 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

CHECKSRC = $(CS_$(V))
CS_0 = @echo "  RUN     " $@;
CS_1 = 
CS_ = $(CS_0)
all: all-am








|







1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
# 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 multi-event.c

CHECKSRC = $(CS_$(V))
CS_0 = @echo "  RUN     " $@;
CS_1 = 
CS_ = $(CS_0)
all: all-am

Changes to jni/curl/docs/examples/Makefile.inc.

41
42
43
44
45
46
47
48
# 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







|
41
42
43
44
45
46
47
48
# 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 multi-event.c

Changes to jni/curl/docs/examples/externalsocket.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/ftp-wildcard.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/htmltidy.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/htmltitle.cpp.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/http2-upload.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/imap-append.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/multi-app.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Added jni/curl/docs/examples/multi-event.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
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
/***************************************************************************
 *                                  _   _ ____  _
 *  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>
 * multi_socket API using libevent
 * </DESC>
 */

#include <stdio.h>
#include <stdlib.h>
#include <event2/event.h>
#include <curl/curl.h>

struct event_base *base;
CURLM *curl_handle;
struct event *timeout;

typedef struct curl_context_s {
  struct event *event;
  curl_socket_t sockfd;
} curl_context_t;

static void curl_perform(int fd, short event, void *arg);

static curl_context_t* create_curl_context(curl_socket_t sockfd)
{
  curl_context_t *context;

  context = (curl_context_t *) malloc(sizeof(*context));

  context->sockfd = sockfd;

  context->event = event_new(base, sockfd, 0, curl_perform, context);

  return context;
}

static void destroy_curl_context(curl_context_t *context)
{
  event_del(context->event);
  event_free(context->event);
  free(context);
}

static void add_download(const char *url, int num)
{
  char filename[50];
  FILE *file;
  CURL *handle;

  snprintf(filename, 50, "%d.download", num);

  file = fopen(filename, "wb");
  if(!file) {
    fprintf(stderr, "Error opening %s\n", filename);
    return;
  }

  handle = curl_easy_init();
  curl_easy_setopt(handle, CURLOPT_WRITEDATA, file);
  curl_easy_setopt(handle, CURLOPT_PRIVATE, file);
  curl_easy_setopt(handle, CURLOPT_URL, url);
  curl_multi_add_handle(curl_handle, handle);
  fprintf(stderr, "Added download %s -> %s\n", url, filename);
}

static void check_multi_info(void)
{
  char *done_url;
  CURLMsg *message;
  int pending;
  CURL *easy_handle;
  FILE *file;

  while((message = curl_multi_info_read(curl_handle, &pending))) {
    switch(message->msg) {
    case CURLMSG_DONE:
      /* Do not use message data after calling curl_multi_remove_handle() and
         curl_easy_cleanup(). As per curl_multi_info_read() docs:
         "WARNING: The data the returned pointer points to will not survive
         calling curl_multi_cleanup, curl_multi_remove_handle or
         curl_easy_cleanup." */
      easy_handle = message->easy_handle;

      curl_easy_getinfo(easy_handle, CURLINFO_EFFECTIVE_URL, &done_url);
      curl_easy_getinfo(easy_handle, CURLINFO_PRIVATE, &file);
      printf("%s DONE\n", done_url);

      curl_multi_remove_handle(curl_handle, easy_handle);
      curl_easy_cleanup(easy_handle);
      if(file) {
        fclose(file);
      }
      break;

    default:
      fprintf(stderr, "CURLMSG default\n");
      break;
    }
  }
}

static void curl_perform(int fd, short event, void *arg)
{
  int running_handles;
  int flags = 0;
  curl_context_t *context;

  if(event & EV_READ)
    flags |= CURL_CSELECT_IN;
  if(event & EV_WRITE)
    flags |= CURL_CSELECT_OUT;

  context = (curl_context_t *) arg;

  curl_multi_socket_action(curl_handle, context->sockfd, flags,
                           &running_handles);

  check_multi_info();
}

static void on_timeout(evutil_socket_t fd, short events, void *arg)
{
  int running_handles;
  curl_multi_socket_action(curl_handle, CURL_SOCKET_TIMEOUT, 0,
                           &running_handles);
  check_multi_info();
}

static int start_timeout(CURLM *multi, long timeout_ms, void *userp)
{
  if(timeout_ms < 0) {
    evtimer_del(timeout);
  }
  else {
    if(timeout_ms == 0)
      timeout_ms = 1; /* 0 means directly call socket_action, but we'll do it
                         in a bit */
    struct timeval tv;
    tv.tv_sec = timeout_ms / 1000;
    tv.tv_usec = (timeout_ms % 1000) * 1000;
    evtimer_del(timeout);
    evtimer_add(timeout, &tv);
  }
  return 0;
}

static int handle_socket(CURL *easy, curl_socket_t s, int action, void *userp,
                  void *socketp)
{
  curl_context_t *curl_context;
  int events = 0;

  switch(action) {
  case CURL_POLL_IN:
  case CURL_POLL_OUT:
  case CURL_POLL_INOUT:
    curl_context = socketp ?
      (curl_context_t *) socketp : create_curl_context(s);

    curl_multi_assign(curl_handle, s, (void *) curl_context);

    if(action != CURL_POLL_IN)
      events |= EV_WRITE;
    if(action != CURL_POLL_OUT)
      events |= EV_READ;

    events |= EV_PERSIST;

    event_del(curl_context->event);
    event_assign(curl_context->event, base, curl_context->sockfd, events,
      curl_perform, curl_context);
    event_add(curl_context->event, NULL);

    break;
  case CURL_POLL_REMOVE:
    if(socketp) {
      event_del(((curl_context_t*) socketp)->event);
      destroy_curl_context((curl_context_t*) socketp);
      curl_multi_assign(curl_handle, s, NULL);
    }
    break;
  default:
    abort();
  }

  return 0;
}

int main(int argc, char **argv)
{
  if(argc <= 1)
    return 0;

  if(curl_global_init(CURL_GLOBAL_ALL)) {
    fprintf(stderr, "Could not init curl\n");
    return 1;
  }

  base = event_base_new();
  timeout = evtimer_new(base, on_timeout, NULL);

  curl_handle = curl_multi_init();
  curl_multi_setopt(curl_handle, CURLMOPT_SOCKETFUNCTION, handle_socket);
  curl_multi_setopt(curl_handle, CURLMOPT_TIMERFUNCTION, start_timeout);

  while(argc-- > 1) {
    add_download(argv[argc], argc);
  }

  event_base_dispatch(base);

  curl_multi_cleanup(curl_handle);
  event_free(timeout);
  event_base_free(base);

  libevent_global_shutdown();
  curl_global_cleanup();

  return 0;
}

Changes to jni/curl/docs/examples/multithread.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/postit2-formadd.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/***************************************************************************
 *                                  _   _ ____  _
 *  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
................................................................................
 *
 * <form method="post" enctype="multipart/form-data" action="examplepost.cgi">
 * Enter file: <input type="file" name="sendfile" size="40">
 * Enter file name: <input type="text" name="filename" size="30">
 * <input type="submit" value="send" name="submit">
 * </form>
 *
 * This exact source code has not been verified to work.
 */

#include <stdio.h>
#include <string.h>

#include <curl/curl.h>








|







 







<







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
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
................................................................................
 *
 * <form method="post" enctype="multipart/form-data" action="examplepost.cgi">
 * Enter file: <input type="file" name="sendfile" size="40">
 * Enter file name: <input type="text" name="filename" size="30">
 * <input type="submit" value="send" name="submit">
 * </form>
 *

 */

#include <stdio.h>
#include <string.h>

#include <curl/curl.h>

Changes to jni/curl/docs/examples/postit2.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/***************************************************************************
 *                                  _   _ ____  _
 *  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
................................................................................
 *
 * <form method="post" enctype="multipart/form-data" action="examplepost.cgi">
 * Enter file: <input type="file" name="sendfile" size="40">
 * Enter file name: <input type="text" name="filename" size="30">
 * <input type="submit" value="send" name="submit">
 * </form>
 *
 * This exact source code has not been verified to work.
 */

#include <stdio.h>
#include <string.h>

#include <curl/curl.h>








|







 







<







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
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
................................................................................
 *
 * <form method="post" enctype="multipart/form-data" action="examplepost.cgi">
 * Enter file: <input type="file" name="sendfile" size="40">
 * Enter file name: <input type="text" name="filename" size="30">
 * <input type="submit" value="send" name="submit">
 * </form>
 *

 */

#include <stdio.h>
#include <string.h>

#include <curl/curl.h>

Changes to jni/curl/docs/examples/resolve.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/sampleconv.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/sendrecv.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/shared-connection-cache.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/smooth-gtk-thread.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/smtp-mime.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/sslbackend.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/***************************************************************************
 *                                  _   _ ____  _
 *  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
................................................................................

    for(i = 0; list[i]; i++)
      printf("SSL backend #%d: '%s' (ID: %d)\n",
             i, list[i]->name, list[i]->id);

    return 0;
  }
  else if(isdigit(*name)) {
    int id = atoi(name);

    result = curl_global_sslset((curl_sslbackend)id, NULL, NULL);
  }
  else
    result = curl_global_sslset(-1, name, NULL);








|







 







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
..
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/***************************************************************************
 *                                  _   _ ____  _
 *  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
................................................................................

    for(i = 0; list[i]; i++)
      printf("SSL backend #%d: '%s' (ID: %d)\n",
             i, list[i]->name, list[i]->id);

    return 0;
  }
  else if(isdigit((int)(unsigned char)*name)) {
    int id = atoi(name);

    result = curl_global_sslset((curl_sslbackend)id, NULL, NULL);
  }
  else
    result = curl_global_sslset(-1, name, NULL);

Changes to jni/curl/docs/examples/synctime.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/threaded-shared-conn.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

Changes to jni/curl/docs/examples/threaded-ssl.c.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***************************************************************************
 *                                  _   _ ____  _
 *  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

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.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 ");"







|







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.67.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.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 ");"







|







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.67.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.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







|







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.67.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
.\" * furnished to do so, under the 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, ... );"







|







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_getinfo 3 "August 06, 2019" "libcurl 7.67.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, ... );"

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.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( );"







|







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.67.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.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 " );"







|







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.67.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.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 ");"







|







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.67.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.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 ","







|







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.67.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.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 ");"







|







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.67.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.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 ","







|







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.67.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
.\" * furnished to do so, under the 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);







|







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_setopt 3 "August 09, 2019" "libcurl 7.67.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);

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.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);







|







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.67.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.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







|







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.67.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.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 " );"







|







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.67.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.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,







|







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.67.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.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);







|







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.67.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.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>








|







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.67.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.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 " );"







|







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.67.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.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 " );"







|







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.67.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.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 ");"







|







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.67.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.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);"







|







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.67.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.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 ");"







|







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.67.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.

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_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,







|







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_mem 3 "August 11, 2019" "libcurl 7.67.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,

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.66.0" "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.67.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.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 ");"







|







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.67.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.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







|







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.67.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.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);







|







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.67.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.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 ,







|







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.67.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.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 ,







|







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.67.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.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 ,







|







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.67.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.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);







|







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.67.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.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 ,







|







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.67.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.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 ");"







|







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.67.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.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 ");"







|







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.67.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.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 ,







|







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.67.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.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 ,







|







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.67.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.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>







|







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.67.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.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);







|







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.67.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.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,







|







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.67.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.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 );"







|







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.67.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.66.0" "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.67.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.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,







|







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.67.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.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( );"







|







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.67.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.

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
..
43
44
45
46
47
48
49


50
51
52
53
54
55
56
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
.\" * are also available at https://curl.haxx.se/docs/copyright.html.
.\" *
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
.\" * copies of the Software, and permit persons to whom the Software is
.\" * furnished to do so, under the terms of the COPYING file.
.\" *
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.TH 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);
................................................................................

If the amount of \fIrunning_handles\fP is changed from the previous call (or
is less than the amount of easy handles you've added to the multi handle), you
know that there is one or more transfers less "running". You can then call
\fIcurl_multi_info_read(3)\fP to get information about each individual
completed transfer, and that returned info includes CURLcode and more. If an
added handle fails very quickly, it may never be counted as a running_handle.



When \fIrunning_handles\fP is set to zero (0) on the return of this function,
there is no longer any transfers in progress.
.SH EXAMPLE
.nf
#ifdef _WIN32
#define SHORT_SLEEP Sleep(100)







|













|







 







>
>







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
..
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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_perform 3 "October 31, 2019" "libcurl 7.67.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);
................................................................................

If the amount of \fIrunning_handles\fP is changed from the previous call (or
is less than the amount of easy handles you've added to the multi handle), you
know that there is one or more transfers less "running". You can then call
\fIcurl_multi_info_read(3)\fP to get information about each individual
completed transfer, and that returned info includes CURLcode and more. If an
added handle fails very quickly, it may never be counted as a running_handle.
You could use \fIcurl_multi_info_read(3)\fP to track actual status of the
added handles in that case.

When \fIrunning_handles\fP is set to zero (0) on the return of this function,
there is no longer any transfers in progress.
.SH EXAMPLE
.nf
#ifdef _WIN32
#define SHORT_SLEEP Sleep(100)

Changes to jni/curl/docs/libcurl/curl_multi_poll.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_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>








|







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_poll 3 "July 29, 2019" "libcurl 7.67.0" "libcurl Manual"

.SH NAME
curl_multi_poll - polls on all easy handles in a multi handle
.SH SYNOPSIS
.nf
#include <curl/curl.h>

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.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);







|







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.67.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.

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
..
64
65
66
67
68
69
70


71
72
73
74
75
76
77
78
79
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  Project                     ___| | | |  _ \| |
.\" *                             / __| | | | |_) | |
.\" *                            | (__| |_| |  _ <| |___
.\" *                             \___|\___/|_| \_\_____|
.\" *
.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
.\" *
.\" * This software is licensed as described in the file COPYING, which
.\" * you should have received as part of this distribution. The terms
.\" * are also available at https://curl.haxx.se/docs/copyright.html.
.\" *
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
.\" * copies of the Software, and permit persons to whom the Software is
.\" * furnished to do so, under the terms of the COPYING file.
.\" *
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.TH 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);
................................................................................
See \fICURLMOPT_SOCKETFUNCTION(3)\fP
.IP CURLMOPT_SOCKETDATA
See \fICURLMOPT_SOCKETDATA(3)\fP
.IP CURLMOPT_TIMERFUNCTION
See \fICURLMOPT_TIMERFUNCTION(3)\fP
.IP CURLMOPT_TIMERDATA
See \fICURLMOPT_TIMERDATA(3)\fP


.SH RETURNS
The standard CURLMcode for multi interface error codes. Note that it returns a
CURLM_UNKNOWN_OPTION if you try setting an option that this version of libcurl
doesn't know of.
.SH AVAILABILITY
This function was added in libcurl 7.15.4.
.SH "SEE ALSO"
.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
.BR curl_multi_socket "(3), " curl_multi_info_read "(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
..
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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_setopt 3 "September 24, 2019" "libcurl 7.67.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);
................................................................................
See \fICURLMOPT_SOCKETFUNCTION(3)\fP
.IP CURLMOPT_SOCKETDATA
See \fICURLMOPT_SOCKETDATA(3)\fP
.IP CURLMOPT_TIMERFUNCTION
See \fICURLMOPT_TIMERFUNCTION(3)\fP
.IP CURLMOPT_TIMERDATA
See \fICURLMOPT_TIMERDATA(3)\fP
.IP CURLMOPT_MAX_CONCURRENT_STREAMS
See \fICURLMOPT_MAX_CONCURRENT_STREAMS(3)\fP
.SH RETURNS
The standard CURLMcode for multi interface error codes. Note that it returns a
CURLM_UNKNOWN_OPTION if you try setting an option that this version of libcurl
doesn't know of.
.SH AVAILABILITY
This function was added in libcurl 7.15.4.
.SH "SEE ALSO"
.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
.BR curl_multi_socket "(3), " curl_multi_info_read "(3)"

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.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,







|







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.67.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.66.0" "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.67.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.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 ");"







|







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.67.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.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);







|







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.67.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.

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
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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 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>








|













|







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
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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_wait 3 "October 31, 2019" "libcurl 7.67.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.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 ");"







|







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.67.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.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( );"







|







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.67.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.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);







|







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.67.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.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 ");"







|







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.67.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.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,







|







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.67.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.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);







|







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.67.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.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 ");"







|







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.67.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.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 " );"







|







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.67.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.66.0" "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.67.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.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);







|







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.67.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.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);







|







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.67.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
..
73
74
75
76
77
78
79
80
81

82
83
84
85
86
87
88
.\" * copies of the Software, and permit persons to whom the Software is
.\" * furnished to do so, under the 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
................................................................................
normalized and possibly cleaned up version of what was previously parsed.
.IP CURLUPART_SCHEME
Scheme cannot be URL decoded on get.
.IP CURLUPART_USER
.IP CURLUPART_PASSWORD
.IP CURLUPART_OPTIONS
.IP CURLUPART_HOST
If the host part is an IPv6 numeric address, the zoneid will not be part of
the extracted host but is provided separately in \fICURLUPART_ZONEID\fP.

.IP CURLUPART_ZONEID
If the host name is a numeric IPv6 address, this field might also be set.
.IP CURLUPART_PORT
Port cannot be URL decoded on get.
.IP CURLUPART_PATH
.IP CURLUPART_QUERY
The query part will also get pluses converted to space when asked to URL







|







 







|
|
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
..
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
.\" * copies of the Software, and permit persons to whom the Software is
.\" * furnished to do so, under the 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 "September 25, 2019" "libcurl 7.67.0" "libcurl Manual"

.SH NAME
curl_url_get - extract a part from a URL
.SH SYNOPSIS
.B #include <curl/curl.h>

.nf
................................................................................
normalized and possibly cleaned up version of what was previously parsed.
.IP CURLUPART_SCHEME
Scheme cannot be URL decoded on get.
.IP CURLUPART_USER
.IP CURLUPART_PASSWORD
.IP CURLUPART_OPTIONS
.IP CURLUPART_HOST
The host name. If it is an IPv6 numeric address, the zoneid will not be part
of it but is provided separately in \fICURLUPART_ZONEID\fP. IPv6 numerical
addresses are returned within brackets ([]).
.IP CURLUPART_ZONEID
If the host name is a numeric IPv6 address, this field might also be set.
.IP CURLUPART_PORT
Port cannot be URL decoded on get.
.IP CURLUPART_PATH
.IP CURLUPART_QUERY
The query part will also get pluses converted to space when asked to URL

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
..
57
58
59
60
61
62
63
64
65

66
67
68
69
70
71
72
...
108
109
110
111
112
113
114






115
116
117
118
119
120
121
.\" * copies of the Software, and permit persons to whom the Software is
.\" * furnished to do so, under the 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,
................................................................................
pointer.
.IP CURLUPART_SCHEME
Scheme cannot be URL decoded on set.
.IP CURLUPART_USER
.IP CURLUPART_PASSWORD
.IP CURLUPART_OPTIONS
.IP CURLUPART_HOST
The host name can use IDNA. The string must then be encoded as your locale
says or UTF-8 (when winidn is used).

.IP CURLUPART_ZONEID
If the host name is a numeric IPv6 address, this field can also be set.
.IP CURLUPART_PORT
Port cannot be URL encoded on set. The given port number is provided as a
string and the decimal number must be between 1 and 65535. Anything else will
return an error.
.IP CURLUPART_PATH
................................................................................
option if both are set.
.IP CURLU_GUESS_SCHEME
If set, will make libcurl allow the URL to be set without a scheme and it
instead "guesses" which scheme that was intended based on the host name.  If
the outermost sub-domain name matches DICT, FTP, IMAP, LDAP, POP3 or SMTP then
that scheme will be used, otherwise it picks HTTP. Conflicts with the
\fICURLU_DEFAULT_SCHEME\fP option which takes precedence if both are set.






.SH RETURN VALUE
Returns a CURLUcode error value, which is CURLUE_OK (0) if everything went
fine.

If this function returns an error, no URL part is returned.
.SH EXAMPLE
.nf







|







 







|
|
>







 







>
>
>
>
>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
..
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
...
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
.\" * copies of the Software, and permit persons to whom the Software is
.\" * furnished to do so, under the 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 "September 25, 2019" "libcurl 7.67.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,
................................................................................
pointer.
.IP CURLUPART_SCHEME
Scheme cannot be URL decoded on set.
.IP CURLUPART_USER
.IP CURLUPART_PASSWORD
.IP CURLUPART_OPTIONS
.IP CURLUPART_HOST
The host name. If it is IDNA the string must then be encoded as your locale
says or UTF-8 (when WinIDN is used). If it is a bracketed IPv6 numeric address
it may contain a zone id (or you can use CURLUPART_ZONEID).
.IP CURLUPART_ZONEID
If the host name is a numeric IPv6 address, this field can also be set.
.IP CURLUPART_PORT
Port cannot be URL encoded on set. The given port number is provided as a
string and the decimal number must be between 1 and 65535. Anything else will
return an error.
.IP CURLUPART_PATH
................................................................................
option if both are set.
.IP CURLU_GUESS_SCHEME
If set, will make libcurl allow the URL to be set without a scheme and it
instead "guesses" which scheme that was intended based on the host name.  If
the outermost sub-domain name matches DICT, FTP, IMAP, LDAP, POP3 or SMTP then
that scheme will be used, otherwise it picks HTTP. Conflicts with the
\fICURLU_DEFAULT_SCHEME\fP option which takes precedence if both are set.
.IP CURLU_NO_AUTHORITY
If set, skips authority checks. The RFC allows individual schemes to omit the
host part (normally the only mandatory part of the authority), but libcurl
cannot know whether this is permitted for custom schemes. Specifying the flag
permits empty authority sections, similar to how file scheme is handled.

.SH RETURN VALUE
Returns a CURLUcode error value, which is CURLUE_OK (0) if everything went
fine.

If this function returns an error, no URL part is returned.
.SH EXAMPLE
.nf

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.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( );"







|







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.67.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
.\" * furnished to do so, under the 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 ");"







|







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_version_info 3 "August 13, 2019" "libcurl 7.67.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 ");"

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.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.







|







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.67.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.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,







|







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.67.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.

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
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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
................................................................................
.\" * furnished to do so, under the 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"







|







 







|







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
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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 libcurl-errors 3 "October 31, 2019" "libcurl 7.67.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"

Changes to jni/curl/docs/libcurl/libcurl-multi.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
..
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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
................................................................................
.\" * furnished to do so, under the 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
................................................................................
wait for input on your own private file descriptors at the same time
\fIcurl_multi_timeout(3)\fP also helps you with providing a suitable timeout
period for your select() calls.

\fIcurl_multi_perform(3)\fP stores the number of still running transfers in
one of its input arguments, and by reading that you can figure out when all
the transfers in the multi handles are done. 'done' does not mean
successful. One or more of the transfers may have failed. Tracking when this
number changes, you know when one or more transfers are done.

To get information about completed transfers, to figure out success or not and
similar, \fIcurl_multi_info_read(3)\fP should be called. It can return a
message about a current or previous transfer. Repeated invokes of the function
get more messages until the message queue is empty. The information you
receive there includes an easy handle pointer which you may use to identify
which easy handle the information regards.







|







 







|







 







|
<







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
..
94
95
96
97
98
99
100
101

102
103
104
105
106
107
108
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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 libcurl-multi 3 "October 31, 2019" "libcurl 7.67.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
................................................................................
wait for input on your own private file descriptors at the same time
\fIcurl_multi_timeout(3)\fP also helps you with providing a suitable timeout
period for your select() calls.

\fIcurl_multi_perform(3)\fP stores the number of still running transfers in
one of its input arguments, and by reading that you can figure out when all
the transfers in the multi handles are done. 'done' does not mean
successful. One or more of the transfers may have failed. 


To get information about completed transfers, to figure out success or not and
similar, \fIcurl_multi_info_read(3)\fP should be called. It can return a
message about a current or previous transfer. Repeated invokes of the function
get more messages until the message queue is empty. The information you
receive there includes an easy handle pointer which you may use to identify
which easy handle the information regards.

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.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







|







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.67.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.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.







|







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.67.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
...
699
700
701
702
703
704
705


706
707
708
709
710
711
712
....
1649
1650
1651
1652
1653
1654
1655


1656
1657
1658
1659
1660
1661
1662
....
1949
1950
1951
1952
1953
1954
1955


1956
1957
1958
1959
1960
1961
1962
.\" * copies of the Software, and permit persons to whom the Software is
.\" * furnished to do so, under the 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:

................................................................................
Introduced in 7.16.3
.IP CURLMOPT_MAX_HOST_CONNECTIONS
Introduced in 7.30.0
.IP CURLMOPT_MAX_PIPELINE_LENGTH
Introduced in 7.30.0
.IP CURLMOPT_MAX_TOTAL_CONNECTIONS
Introduced in 7.30.0


.IP CURLMOPT_PIPELINING
Introduced in 7.16.0
.IP CURLMOPT_PIPELINING_SERVER_BL
Introduced in 7.30.0
.IP CURLMOPT_PIPELINING_SITE_BL
Introduced in 7.30.0
.IP CURLMOPT_PUSHDATA
................................................................................
Introduced in 7.62.0
.IP CURLU_GUESS_SCHEME
Introduced in 7.62.0
.IP CURLU_NON_SUPPORT_SCHEME
Introduced in 7.62.0
.IP CURLU_NO_DEFAULT_PORT
Introduced in 7.62.0


.IP CURLU_PATH_AS_IS
Introduced in 7.62.0
.IP CURLU_URLDECODE
Introduced in 7.62.0
.IP CURLU_URLENCODE
Introduced in 7.62.0
.IP CURLVERSION_FIFTH
................................................................................
Introduced in 7.57.0
.IP CURL_VERSION_CONV
Introduced in 7.15.4
.IP CURL_VERSION_CURLDEBUG
Introduced in 7.19.6
.IP CURL_VERSION_DEBUG
Introduced in 7.10.6


.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







|







 







>
>







 







>
>







 







>
>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
...
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
....
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
....
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
.\" * copies of the Software, and permit persons to whom the Software is
.\" * furnished to do so, under the 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 "nov  6, 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:

................................................................................
Introduced in 7.16.3
.IP CURLMOPT_MAX_HOST_CONNECTIONS
Introduced in 7.30.0
.IP CURLMOPT_MAX_PIPELINE_LENGTH
Introduced in 7.30.0
.IP CURLMOPT_MAX_TOTAL_CONNECTIONS
Introduced in 7.30.0
.IP CURLMOPT_MAX_CONCURRENT_STREAMS
Introduced in 7.67.0
.IP CURLMOPT_PIPELINING
Introduced in 7.16.0
.IP CURLMOPT_PIPELINING_SERVER_BL
Introduced in 7.30.0
.IP CURLMOPT_PIPELINING_SITE_BL
Introduced in 7.30.0
.IP CURLMOPT_PUSHDATA
................................................................................
Introduced in 7.62.0
.IP CURLU_GUESS_SCHEME
Introduced in 7.62.0
.IP CURLU_NON_SUPPORT_SCHEME
Introduced in 7.62.0
.IP CURLU_NO_DEFAULT_PORT
Introduced in 7.62.0
.IP CURLU_NO_AUTHORITY
Introduced in 7.67.0
.IP CURLU_PATH_AS_IS
Introduced in 7.62.0
.IP CURLU_URLDECODE
Introduced in 7.62.0
.IP CURLU_URLENCODE
Introduced in 7.62.0
.IP CURLVERSION_FIFTH
................................................................................
Introduced in 7.57.0
.IP CURL_VERSION_CONV
Introduced in 7.15.4
.IP CURL_VERSION_CURLDEBUG
Introduced in 7.19.6
.IP CURL_VERSION_DEBUG
Introduced in 7.10.6
.IP CURL_VERSION_ESNI
Introduced in 7.67.0
.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

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.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.







|







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.67.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.

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
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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
................................................................................
.\" * furnished to do so, under the 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







|







 







|







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
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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 libcurl-tutorial 3 "October 31, 2019" "libcurl 7.67.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.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







|







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.67.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.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







|







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.67.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.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,







|







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.67.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.

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_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);







|







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_APPCONNECT_TIME 3 "August 26, 2019" "libcurl 7.67.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_APPCONNECT_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_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);







|







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_APPCONNECT_TIME_T 3 "August 26, 2019" "libcurl 7.67.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);

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.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,







|







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.67.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.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);







|







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.67.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.

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_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);







|







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_CONNECT_TIME 3 "August 26, 2019" "libcurl 7.67.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_CONNECT_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_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);







|







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_CONNECT_TIME_T 3 "August 26, 2019" "libcurl 7.67.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);

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.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,







|







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.67.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.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,







|







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.67.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.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,







|







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.67.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.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,







|







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.67.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.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);







|







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.67.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.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,







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.

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_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);







|







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_VERSION 3 "August 07, 2019" "libcurl 7.67.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);

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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.

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_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);







|







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_NAMELOOKUP_TIME 3 "August 26, 2019" "libcurl 7.67.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_NAMELOOKUP_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_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);







|







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_NAMELOOKUP_TIME_T 3 "August 26, 2019" "libcurl 7.67.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);

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.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);







|







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.67.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.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);







|







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.67.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.

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_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);







|







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_PRETRANSFER_TIME 3 "August 26, 2019" "libcurl 7.67.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_PRETRANSFER_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_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);







|







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_PRETRANSFER_TIME_T 3 "August 26, 2019" "libcurl 7.67.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);

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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_RETRY_AFTER.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_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);







|







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_RETRY_AFTER 3 "August 06, 2019" "libcurl 7.67.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);

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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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,







|







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.67.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.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);







|







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.67.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.

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_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);







|







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_STARTTRANSFER_TIME 3 "August 26, 2019" "libcurl 7.67.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_STARTTRANSFER_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_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);







|







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_STARTTRANSFER_TIME_T 3 "August 26, 2019" "libcurl 7.67.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);

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.66.0" "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.67.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.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>








|







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.67.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.

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_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);







|







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_TOTAL_TIME 3 "August 26, 2019" "libcurl 7.67.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);

Changes to jni/curl/docs/libcurl/opts/CURLINFO_TOTAL_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_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);







|







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_TOTAL_TIME_T 3 "August 26, 2019" "libcurl 7.67.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);

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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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);

Added jni/curl/docs/libcurl/opts/CURLMOPT_MAX_CONCURRENT_STREAMS.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
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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 CURLMOPT_MAX_CONCURRENT_STREAMS 3 "06 Nov 2019" "libcurl 7.67.0" "curl_multi_setopt options"
.SH NAME
CURLMOPT_MAX_CONCURRENT_STREAMS \- set max concurrent streams for http2
.SH SYNOPSIS
.nf
#include <curl/curl.h>

CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_MAX_CONCURRENT_STREAMS,
                            long max);
.fi
.SH DESCRIPTION
Pass a long indicating the \fBmax\fP. The set number will be used as the
maximum number of concurrent streams for a connections that libcurl should
support on connections done using HTTP/2.

Valid values range from 1 to 2147483647 (2^31 - 1) and defaults to 100.  The
value passed here would be honoured based on other system resources
properties.
.SH DEFAULT
100
.SH PROTOCOLS
All
.SH EXAMPLE
.nf
  CURLM *m = curl_multi_init();
  /* max concurrent streams 200 */
  curl_multi_setopt(m, CURLMOPT_MAX_CONCURRENT_STREAMS, 200L);
.fi
.SH AVAILABILITY
Added in 7.67.0
.SH RETURN VALUE
Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not.
.SH "SEE ALSO"
.BR CURLOPT_MAXCONNECTS "(3), " CURLMOPT_MAXCONNECTS "(3), "

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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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.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);







|







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.67.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
.\" * furnished to do so, under the terms of the COPYING file.
.\" *
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.\"
.TH CURLMOPT_PUSHDATA 3 "May 27, 2017" "libcurl 7.66.0" "curl_multi_setopt options"

.SH NAME
CURLMOPT_PUSHDATA \- pointer to pass to push callback
.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 CURLMOPT_PUSHDATA 3 "May 27, 2017" "libcurl 7.67.0" "curl_multi_setopt options"

.SH NAME
CURLMOPT_PUSHDATA \- pointer to pass to push callback
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_PUSHFUNCTION.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_PUSHFUNCTION 3 "February 03, 2016" "libcurl 7.66.0" "curl_multi_setopt options"

.SH NAME
CURLMOPT_PUSHFUNCTION \- callback that approves or denies server pushes
.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 CURLMOPT_PUSHFUNCTION 3 "February 03, 2016" "libcurl 7.67.0" "curl_multi_setopt options"

.SH NAME
CURLMOPT_PUSHFUNCTION \- callback that approves or denies server pushes
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_SOCKETDATA.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_SOCKETDATA 3 "May 31, 2017" "libcurl 7.66.0" "curl_multi_setopt options"

.SH NAME
CURLMOPT_SOCKETDATA \- custom pointer passed to the socket callback
.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 CURLMOPT_SOCKETDATA 3 "May 31, 2017" "libcurl 7.67.0" "curl_multi_setopt options"

.SH NAME
CURLMOPT_SOCKETDATA \- custom pointer passed to the socket callback
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_SOCKETFUNCTION.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_SOCKETFUNCTION 3 "June 24, 2019" "libcurl 7.66.0" "curl_multi_setopt options"

.SH NAME
CURLMOPT_SOCKETFUNCTION \- callback informed about what to wait for
.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 CURLMOPT_SOCKETFUNCTION 3 "June 24, 2019" "libcurl 7.67.0" "curl_multi_setopt options"

.SH NAME
CURLMOPT_SOCKETFUNCTION \- callback informed about what to wait for
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_TIMERDATA.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_TIMERDATA 3 "May 27, 2017" "libcurl 7.66.0" "curl_multi_setopt options"

.SH NAME
CURLMOPT_TIMERDATA \- custom pointer to pass to timer callback
.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 CURLMOPT_TIMERDATA 3 "May 27, 2017" "libcurl 7.67.0" "curl_multi_setopt options"

.SH NAME
CURLMOPT_TIMERDATA \- custom pointer to pass to timer callback
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLMOPT_TIMERFUNCTION.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_TIMERFUNCTION 3 "May 03, 2019" "libcurl 7.66.0" "curl_multi_setopt options"

.SH NAME
CURLMOPT_TIMERFUNCTION \- set callback to receive timeout values
.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 CURLMOPT_TIMERFUNCTION 3 "May 03, 2019" "libcurl 7.67.0" "curl_multi_setopt options"

.SH NAME
CURLMOPT_TIMERFUNCTION \- set callback to receive timeout values
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_ABSTRACT_UNIX_SOCKET.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 CURLOPT_ABSTRACT_UNIX_SOCKET 3 "January 09, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ABSTRACT_UNIX_SOCKET \- set an abstract Unix domain socket
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ABSTRACT_UNIX_SOCKET, 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 CURLOPT_ABSTRACT_UNIX_SOCKET 3 "January 09, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ABSTRACT_UNIX_SOCKET \- set an abstract Unix domain socket
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ABSTRACT_UNIX_SOCKET, char *path);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_ACCEPTTIMEOUT_MS.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 CURLOPT_ACCEPTTIMEOUT_MS 3 "March 06, 2016" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ACCEPTTIMEOUT_MS \- timeout waiting for FTP server to connect back
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ACCEPTTIMEOUT_MS, long ms);







|







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 CURLOPT_ACCEPTTIMEOUT_MS 3 "March 06, 2016" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ACCEPTTIMEOUT_MS \- timeout waiting for FTP server to connect back
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ACCEPTTIMEOUT_MS, long ms);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_ACCEPT_ENCODING.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 CURLOPT_ACCEPT_ENCODING 3 "August 27, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ACCEPT_ENCODING \- enables automatic decompression of HTTP downloads
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ACCEPT_ENCODING, char *enc);







|







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 CURLOPT_ACCEPT_ENCODING 3 "August 27, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ACCEPT_ENCODING \- enables automatic decompression of HTTP downloads
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ACCEPT_ENCODING, char *enc);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_ADDRESS_SCOPE.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 CURLOPT_ADDRESS_SCOPE 3 "March 07, 2019" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ADDRESS_SCOPE \- set scope id for IPv6 addresses
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ADDRESS_SCOPE, long scope);







|







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 CURLOPT_ADDRESS_SCOPE 3 "March 07, 2019" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ADDRESS_SCOPE \- set scope id for IPv6 addresses
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ADDRESS_SCOPE, long scope);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_ALTSVC.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 CURLOPT_ALTSVC 3 "August 14, 2019" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ALTSVC \- set alt-svc cache file name
.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 CURLOPT_ALTSVC 3 "August 14, 2019" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ALTSVC \- set alt-svc cache file name
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_ALTSVC_CTRL.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 CURLOPT_ALTSVC_CTRL 3 "August 13, 2019" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ALTSVC_CTRL \- control alt-svc behavior
.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 CURLOPT_ALTSVC_CTRL 3 "August 13, 2019" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ALTSVC_CTRL \- control alt-svc behavior
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_APPEND.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 CURLOPT_APPEND 3 "March 06, 2016" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_APPEND \- enable appending to the remote file
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_APPEND, long append);







|







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 CURLOPT_APPEND 3 "March 06, 2016" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_APPEND \- enable appending to the remote file
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_APPEND, long append);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_AUTOREFERER.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 CURLOPT_AUTOREFERER 3 "May 05, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_AUTOREFERER \- automatically update the referer header
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_AUTOREFERER, long autorefer);







|







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 CURLOPT_AUTOREFERER 3 "May 05, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_AUTOREFERER \- automatically update the referer header
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_AUTOREFERER, long autorefer);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_BUFFERSIZE.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 CURLOPT_BUFFERSIZE 3 "May 13, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_BUFFERSIZE \- set preferred receive buffer size
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_BUFFERSIZE, 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 CURLOPT_BUFFERSIZE 3 "May 13, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_BUFFERSIZE \- set preferred receive buffer size
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_BUFFERSIZE, long size);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CAINFO.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 CURLOPT_CAINFO 3 "June 10, 2019" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CAINFO \- path to Certificate Authority (CA) bundle
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CAINFO, 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 CURLOPT_CAINFO 3 "June 10, 2019" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CAINFO \- path to Certificate Authority (CA) bundle
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CAINFO, char *path);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CAPATH.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 CURLOPT_CAPATH 3 "September 10, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CAPATH \- specify directory holding CA certificates
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CAPATH, char *capath);







|







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 CURLOPT_CAPATH 3 "September 10, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CAPATH \- specify directory holding CA certificates
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CAPATH, char *capath);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_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 CURLOPT_CERTINFO 3 "January 29, 2019" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CERTINFO \- request SSL certificate information
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CERTINFO, long 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 CURLOPT_CERTINFO 3 "January 29, 2019" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CERTINFO \- request SSL certificate information
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CERTINFO, long certinfo);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CHUNK_BGN_FUNCTION.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 CURLOPT_CHUNK_BGN_FUNCTION 3 "May 03, 2019" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CHUNK_BGN_FUNCTION \- callback before a transfer with FTP wildcardmatch
.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 CURLOPT_CHUNK_BGN_FUNCTION 3 "May 03, 2019" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CHUNK_BGN_FUNCTION \- callback before a transfer with FTP wildcardmatch
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CHUNK_DATA.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 CURLOPT_CHUNK_DATA 3 "November 07, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CHUNK_DATA \- custom pointer to the FTP chunk callbacks
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CHUNK_DATA, void *pointer);







|







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 CURLOPT_CHUNK_DATA 3 "November 07, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CHUNK_DATA \- custom pointer to the FTP chunk callbacks
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CHUNK_DATA, void *pointer);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CHUNK_END_FUNCTION.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 CURLOPT_CHUNK_END_FUNCTION 3 "May 31, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CHUNK_END_FUNCTION \- callback after a transfer with FTP wildcardmatch
.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 CURLOPT_CHUNK_END_FUNCTION 3 "May 31, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CHUNK_END_FUNCTION \- callback after a transfer with FTP wildcardmatch
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CLOSESOCKETDATA.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 CURLOPT_CLOSESOCKETDATA 3 "November 07, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CLOSESOCKETDATA \- pointer passed to the socket close callback
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CLOSESOCKETDATA, void *pointer);







|







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 CURLOPT_CLOSESOCKETDATA 3 "November 07, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CLOSESOCKETDATA \- pointer passed to the socket close callback
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CLOSESOCKETDATA, void *pointer);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CLOSESOCKETFUNCTION.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 CURLOPT_CLOSESOCKETFUNCTION 3 "November 07, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CLOSESOCKETFUNCTION \- callback to socket close replacement function
.SH SYNOPSIS
#include <curl/curl.h>

int closesocket_callback(void *clientp, curl_socket_t item);







|







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 CURLOPT_CLOSESOCKETFUNCTION 3 "November 07, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CLOSESOCKETFUNCTION \- callback to socket close replacement function
.SH SYNOPSIS
#include <curl/curl.h>

int closesocket_callback(void *clientp, curl_socket_t item);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT.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 CURLOPT_CONNECTTIMEOUT 3 "October 03, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONNECTTIMEOUT \- timeout for the connect phase
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECTTIMEOUT, long timeout);







|







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 CURLOPT_CONNECTTIMEOUT 3 "October 03, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONNECTTIMEOUT \- timeout for the connect phase
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECTTIMEOUT, long timeout);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONNECTTIMEOUT_MS.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 CURLOPT_CONNECTTIMEOUT_MS 3 "September 23, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONNECTTIMEOUT_MS \- timeout for the connect phase
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECTTIMEOUT_MS, long timeout);







|







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 CURLOPT_CONNECTTIMEOUT_MS 3 "September 23, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONNECTTIMEOUT_MS \- timeout for the connect phase
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECTTIMEOUT_MS, long timeout);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONNECT_ONLY.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 CURLOPT_CONNECT_ONLY 3 "February 18, 2019" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONNECT_ONLY \- stop when connected to target server
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECT_ONLY, long only);







|







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 CURLOPT_CONNECT_ONLY 3 "February 18, 2019" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONNECT_ONLY \- stop when connected to target server
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECT_ONLY, long only);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONNECT_TO.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 CURLOPT_CONNECT_TO 3 "May 05, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONNECT_TO \- Connect to a specific host and port instead of the URL's host and port
.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 CURLOPT_CONNECT_TO 3 "May 05, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONNECT_TO \- Connect to a specific host and port instead of the URL's host and port
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONV_FROM_NETWORK_FUNCTION.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 CURLOPT_CONV_FROM_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONV_FROM_NETWORK_FUNCTION \- convert data from network to host encoding
.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 CURLOPT_CONV_FROM_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONV_FROM_NETWORK_FUNCTION \- convert data from network to host encoding
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONV_FROM_UTF8_FUNCTION.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 CURLOPT_CONV_FROM_UTF8_FUNCTION 3 "May 31, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONV_FROM_UTF8_FUNCTION \- convert data from UTF8 to host encoding
.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 CURLOPT_CONV_FROM_UTF8_FUNCTION 3 "May 31, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONV_FROM_UTF8_FUNCTION \- convert data from UTF8 to host encoding
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CONV_TO_NETWORK_FUNCTION.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 CURLOPT_CONV_TO_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONV_TO_NETWORK_FUNCTION \- convert data to network from host encoding
.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 CURLOPT_CONV_TO_NETWORK_FUNCTION 3 "May 31, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CONV_TO_NETWORK_FUNCTION \- convert data to network from host encoding
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_COOKIE.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 CURLOPT_COOKIE 3 "December 21, 2016" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_COOKIE \- set contents of HTTP Cookie header
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIE, char *cookie);







|







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 CURLOPT_COOKIE 3 "December 21, 2016" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_COOKIE \- set contents of HTTP Cookie header
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIE, char *cookie);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_COOKIEFILE.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 CURLOPT_COOKIEFILE 3 "March 13, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_COOKIEFILE \- file name to read cookies from
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIEFILE, char *filename);







|







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 CURLOPT_COOKIEFILE 3 "March 13, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_COOKIEFILE \- file name to read cookies from
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIEFILE, char *filename);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_COOKIEJAR.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 CURLOPT_COOKIEJAR 3 "May 05, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_COOKIEJAR \- file name to store cookies to
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIEJAR, char *filename);







|







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 CURLOPT_COOKIEJAR 3 "May 05, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_COOKIEJAR \- file name to store cookies to
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIEJAR, char *filename);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_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 CURLOPT_COOKIELIST 3 "April 26, 2016" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_COOKIELIST \- add to or manipulate cookies held in memory
.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 CURLOPT_COOKIELIST 3 "April 26, 2016" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_COOKIELIST \- add to or manipulate cookies held in memory
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_COOKIESESSION.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 CURLOPT_COOKIESESSION 3 "May 05, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_COOKIESESSION \- start a new cookie session
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIESESSION, long init);







|







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 CURLOPT_COOKIESESSION 3 "May 05, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_COOKIESESSION \- start a new cookie session
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COOKIESESSION, long init);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_COPYPOSTFIELDS.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 CURLOPT_COPYPOSTFIELDS 3 "February 03, 2016" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_COPYPOSTFIELDS \- have libcurl copy data to POST
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COPYPOSTFIELDS, char *data);







|







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 CURLOPT_COPYPOSTFIELDS 3 "February 03, 2016" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_COPYPOSTFIELDS \- have libcurl copy data to POST
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_COPYPOSTFIELDS, char *data);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CRLF.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 CURLOPT_CRLF 3 "May 31, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CRLF \- enable/disable CRLF conversion
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CRLF, long conv);







|







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 CURLOPT_CRLF 3 "May 31, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CRLF \- enable/disable CRLF conversion
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CRLF, long conv);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CRLFILE.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 CURLOPT_CRLFILE 3 "May 31, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CRLFILE \- specify a Certificate Revocation List file
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CRLFILE, char *file);







|







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 CURLOPT_CRLFILE 3 "May 31, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CRLFILE \- specify a Certificate Revocation List file
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CRLFILE, char *file);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CURLU.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
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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
................................................................................
.\" * furnished to do so, under the terms of the COPYING file.
.\" *
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
.\" * KIND, either express or implied.
.\" *
.\" **************************************************************************
.\"
.TH CURLOPT_CURLU 3 "January 16, 2019" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CURLU \- set URL with CURLU *
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CURLU, void *pointer);







|







 







|







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
.\" **************************************************************************
.\" *                                  _   _ ____  _
.\" *  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 CURLOPT_CURLU 3 "October 31, 2019" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CURLU \- set URL with CURLU *
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CURLU, void *pointer);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_CUSTOMREQUEST.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 CURLOPT_CUSTOMREQUEST 3 "April 17, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CUSTOMREQUEST \- custom string for request
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CUSTOMREQUEST, char *request);







|







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 CURLOPT_CUSTOMREQUEST 3 "April 17, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_CUSTOMREQUEST \- custom string for request
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CUSTOMREQUEST, char *request);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DEBUGDATA.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 CURLOPT_DEBUGDATA 3 "February 03, 2016" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DEBUGDATA \- custom pointer for debug callback
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DEBUGDATA, void *pointer);







|







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 CURLOPT_DEBUGDATA 3 "February 03, 2016" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DEBUGDATA \- custom pointer for debug callback
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DEBUGDATA, void *pointer);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DEBUGFUNCTION.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 CURLOPT_DEBUGFUNCTION 3 "October 06, 2016" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DEBUGFUNCTION \- debug callback
.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 CURLOPT_DEBUGFUNCTION 3 "October 06, 2016" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DEBUGFUNCTION \- debug callback
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DEFAULT_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 CURLOPT_DEFAULT_PROTOCOL 3 "December 21, 2016" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DEFAULT_PROTOCOL \- default protocol to use if the URL is missing a
scheme name
.SH SYNOPSIS
#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 CURLOPT_DEFAULT_PROTOCOL 3 "December 21, 2016" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DEFAULT_PROTOCOL \- default protocol to use if the URL is missing a
scheme name
.SH SYNOPSIS
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DIRLISTONLY.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 CURLOPT_DIRLISTONLY 3 "May 05, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DIRLISTONLY \- ask for names only in a directory listing
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DIRLISTONLY, long listonly);







|







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 CURLOPT_DIRLISTONLY 3 "May 05, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DIRLISTONLY \- ask for names only in a directory listing
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DIRLISTONLY, long listonly);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DISALLOW_USERNAME_IN_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 CURLOPT_DISALLOW_USERNAME_IN_URL 3 "February 25, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DISALLOW_USERNAME_IN_URL \- disallow specifying username in the url
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DISALLOW_USERNAME_IN_URL, long disallow);







|







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 CURLOPT_DISALLOW_USERNAME_IN_URL 3 "February 25, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DISALLOW_USERNAME_IN_URL \- disallow specifying username in the url
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DISALLOW_USERNAME_IN_URL, long disallow);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_CACHE_TIMEOUT.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 CURLOPT_DNS_CACHE_TIMEOUT 3 "December 09, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_CACHE_TIMEOUT \- set life-time for DNS cache entries
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_CACHE_TIMEOUT, long age);







|







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 CURLOPT_DNS_CACHE_TIMEOUT 3 "December 09, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_CACHE_TIMEOUT \- set life-time for DNS cache entries
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_CACHE_TIMEOUT, long age);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_INTERFACE.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 CURLOPT_DNS_INTERFACE 3 "May 31, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_INTERFACE \- set interface to speak DNS over
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_INTERFACE, char *ifname);







|







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 CURLOPT_DNS_INTERFACE 3 "May 31, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_INTERFACE \- set interface to speak DNS over
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_INTERFACE, char *ifname);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP4.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 CURLOPT_DNS_LOCAL_IP4 3 "December 10, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_LOCAL_IP4 \- IPv4 address to bind DNS resolves to
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_LOCAL_IP4, char *address);







|







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 CURLOPT_DNS_LOCAL_IP4 3 "December 10, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_LOCAL_IP4 \- IPv4 address to bind DNS resolves to
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_LOCAL_IP4, char *address);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_LOCAL_IP6.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 CURLOPT_DNS_LOCAL_IP6 3 "May 31, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_LOCAL_IP6 \- IPv6 address to bind DNS resolves to
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_LOCAL_IP6, char *address);







|







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 CURLOPT_DNS_LOCAL_IP6 3 "May 31, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_LOCAL_IP6 \- IPv6 address to bind DNS resolves to
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_LOCAL_IP6, char *address);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_SERVERS.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 CURLOPT_DNS_SERVERS 3 "May 31, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_SERVERS \- set preferred DNS servers
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_SERVERS, 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 CURLOPT_DNS_SERVERS 3 "May 31, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_SERVERS \- set preferred DNS servers
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_SERVERS, char *servers);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_SHUFFLE_ADDRESSES.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 CURLOPT_DNS_SHUFFLE_ADDRESSES 3 "March 17, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_SHUFFLE_ADDRESSES \- Shuffle addresses when a hostname returns more than one
.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 CURLOPT_DNS_SHUFFLE_ADDRESSES 3 "March 17, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_SHUFFLE_ADDRESSES \- Shuffle addresses when a hostname returns more than one
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DNS_USE_GLOBAL_CACHE.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 CURLOPT_DNS_USE_GLOBAL_CACHE 3 "March 07, 2019" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_USE_GLOBAL_CACHE \- enable/disable global DNS cache
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_USE_GLOBAL_CACHE,







|







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 CURLOPT_DNS_USE_GLOBAL_CACHE 3 "March 07, 2019" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DNS_USE_GLOBAL_CACHE \- enable/disable global DNS cache
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DNS_USE_GLOBAL_CACHE,

Changes to jni/curl/docs/libcurl/opts/CURLOPT_DOH_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 CURLOPT_DOH_URL 3 "September 06, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DOH_URL \- provide the DNS-over-HTTPS URL
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DOH_URL, 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 CURLOPT_DOH_URL 3 "September 06, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_DOH_URL \- provide the DNS-over-HTTPS URL
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DOH_URL, char *URL);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_EGDSOCKET.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 CURLOPT_EGDSOCKET 3 "May 31, 2017" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_EGDSOCKET \- set EGD socket path
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_EGDSOCKET, 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 CURLOPT_EGDSOCKET 3 "May 31, 2017" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_EGDSOCKET \- set EGD socket path
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_EGDSOCKET, char *path);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_ERRORBUFFER.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 CURLOPT_ERRORBUFFER 3 "March 13, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ERRORBUFFER \- set error buffer for error messages
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ERRORBUFFER, char *buf);







|







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 CURLOPT_ERRORBUFFER 3 "March 13, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_ERRORBUFFER \- set error buffer for error messages
.SH SYNOPSIS
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ERRORBUFFER, char *buf);

Changes to jni/curl/docs/libcurl/opts/CURLOPT_EXPECT_100_TIMEOUT_MS.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 CURLOPT_EXPECT_100_TIMEOUT_MS 3 "April 17, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_EXPECT_100_TIMEOUT_MS \- timeout for Expect: 100-continue response
.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 CURLOPT_EXPECT_100_TIMEOUT_MS 3 "April 17, 2018" "libcurl 7.67.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_EXPECT_100_TIMEOUT_MS \- timeout for Expect: 100-continue response
.SH SYNOPSIS
.nf
#include <curl/curl.h>

Changes to jni/curl/docs/libcurl/opts/CURLOPT_FAILONERROR.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 CURLOPT_FAILONERROR 3 "April 17, 2018" "libcurl 7.66.0" "curl_easy_setopt options"

.SH NAME
CURLOPT_FAILONERROR \- request failure on HTTP response >= 40