appium-webdriveragent 10.5.0 → 10.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [10.5.2](https://github.com/appium/WebDriverAgent/compare/v10.5.1...v10.5.2) (2025-12-18)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* Address possible NULL binding compiler warning ([#1091](https://github.com/appium/WebDriverAgent/issues/1091)) ([263e646](https://github.com/appium/WebDriverAgent/commit/263e646dcbfe95a16c30821f2f8fe1cf7e1a0cce))
|
|
6
|
+
|
|
7
|
+
## [10.5.1](https://github.com/appium/WebDriverAgent/compare/v10.5.0...v10.5.1) (2025-12-18)
|
|
8
|
+
|
|
9
|
+
### Miscellaneous Chores
|
|
10
|
+
|
|
11
|
+
* **deps:** bump asyncbox from 3.0.0 to 4.0.1 ([#1090](https://github.com/appium/WebDriverAgent/issues/1090)) ([92228ba](https://github.com/appium/WebDriverAgent/commit/92228ba2f1a75e4d7f7bba67e5dac1c625a27efe))
|
|
12
|
+
|
|
1
13
|
## [10.5.0](https://github.com/appium/WebDriverAgent/compare/v10.4.5...v10.5.0) (2025-12-18)
|
|
2
14
|
|
|
3
15
|
### Features
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
<key>CFBundlePackageType</key>
|
|
16
16
|
<string>FMWK</string>
|
|
17
17
|
<key>CFBundleShortVersionString</key>
|
|
18
|
-
<string>10.5.
|
|
18
|
+
<string>10.5.2</string>
|
|
19
19
|
<key>CFBundleSignature</key>
|
|
20
20
|
<string>????</string>
|
|
21
21
|
<key>CFBundleVersion</key>
|
|
22
|
-
<string>10.5.
|
|
22
|
+
<string>10.5.2</string>
|
|
23
23
|
<key>NSPrincipalClass</key>
|
|
24
24
|
<string/>
|
|
25
25
|
</dict>
|
|
@@ -2883,7 +2883,7 @@ enum GCDAsyncUdpSocketConfig
|
|
|
2883
2883
|
|
|
2884
2884
|
// Create the socket(s) if needed
|
|
2885
2885
|
|
|
2886
|
-
|
|
2886
|
+
if ((self->flags & kDidCreateSockets) == 0)
|
|
2887
2887
|
{
|
|
2888
2888
|
if (![self createSocket4:useIPv4 socket6:useIPv6 error:&err])
|
|
2889
2889
|
{
|
|
@@ -2897,7 +2897,7 @@ enum GCDAsyncUdpSocketConfig
|
|
|
2897
2897
|
|
|
2898
2898
|
if (useIPv4)
|
|
2899
2899
|
{
|
|
2900
|
-
|
|
2900
|
+
int status = bind(self->socket4FD, (const struct sockaddr *)[interface4 bytes], (socklen_t)[interface4 length]);
|
|
2901
2901
|
if (status == -1)
|
|
2902
2902
|
{
|
|
2903
2903
|
[self closeSockets];
|
|
@@ -2911,7 +2911,7 @@ enum GCDAsyncUdpSocketConfig
|
|
|
2911
2911
|
|
|
2912
2912
|
if (useIPv6)
|
|
2913
2913
|
{
|
|
2914
|
-
|
|
2914
|
+
int status = bind(self->socket6FD, (const struct sockaddr *)[interface6 bytes], (socklen_t)[interface6 length]);
|
|
2915
2915
|
if (status == -1)
|
|
2916
2916
|
{
|
|
2917
2917
|
[self closeSockets];
|
|
@@ -2925,10 +2925,10 @@ enum GCDAsyncUdpSocketConfig
|
|
|
2925
2925
|
|
|
2926
2926
|
// Update flags
|
|
2927
2927
|
|
|
2928
|
-
|
|
2928
|
+
self->flags |= kDidBind;
|
|
2929
2929
|
|
|
2930
|
-
|
|
2931
|
-
|
|
2930
|
+
if (!useIPv4) self->flags |= kIPv4Deactivated;
|
|
2931
|
+
if (!useIPv6) self->flags |= kIPv6Deactivated;
|
|
2932
2932
|
|
|
2933
2933
|
result = YES;
|
|
2934
2934
|
|
|
@@ -3003,7 +3003,7 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3003
3003
|
|
|
3004
3004
|
// Create the socket(s) if needed
|
|
3005
3005
|
|
|
3006
|
-
|
|
3006
|
+
if ((self->flags & kDidCreateSockets) == 0)
|
|
3007
3007
|
{
|
|
3008
3008
|
if (![self createSocket4:useIPv4 socket6:useIPv6 error:&err])
|
|
3009
3009
|
{
|
|
@@ -3013,30 +3013,28 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3013
3013
|
|
|
3014
3014
|
// Bind the socket(s)
|
|
3015
3015
|
|
|
3016
|
-
if (useIPv4)
|
|
3016
|
+
if (useIPv4 || useIPv6)
|
|
3017
3017
|
{
|
|
3018
|
+
NSData *addressData = useIPv4 ? localAddr4 : localAddr6;
|
|
3019
|
+
int socketFD = useIPv4 ? self->socket4FD : self->socket6FD;
|
|
3020
|
+
NSString *protocol = useIPv4 ? @"IPv4" : @"IPv6";
|
|
3021
|
+
|
|
3018
3022
|
LogVerbose(@"Binding socket to address(%@:%hu)",
|
|
3019
|
-
[[self class] hostFromAddress:
|
|
3020
|
-
[[self class] portFromAddress:
|
|
3023
|
+
[[self class] hostFromAddress:addressData],
|
|
3024
|
+
[[self class] portFromAddress:addressData]);
|
|
3021
3025
|
|
|
3022
|
-
|
|
3023
|
-
if (
|
|
3026
|
+
const struct sockaddr *addr = (const struct sockaddr *)[addressData bytes];
|
|
3027
|
+
if (addr == NULL)
|
|
3024
3028
|
{
|
|
3025
3029
|
[self closeSockets];
|
|
3026
3030
|
|
|
3027
|
-
NSString *reason =
|
|
3028
|
-
err = [self
|
|
3031
|
+
NSString *reason = [NSString stringWithFormat:@"Invalid address data for %@ bind", protocol];
|
|
3032
|
+
err = [self badParamError:reason];
|
|
3029
3033
|
|
|
3030
3034
|
return_from_block;
|
|
3031
3035
|
}
|
|
3032
|
-
}
|
|
3033
|
-
else
|
|
3034
|
-
{
|
|
3035
|
-
LogVerbose(@"Binding socket to address(%@:%hu)",
|
|
3036
|
-
[[self class] hostFromAddress:localAddr6],
|
|
3037
|
-
[[self class] portFromAddress:localAddr6]);
|
|
3038
3036
|
|
|
3039
|
-
|
|
3037
|
+
int status = bind(socketFD, addr, (socklen_t)[addressData length]);
|
|
3040
3038
|
if (status == -1)
|
|
3041
3039
|
{
|
|
3042
3040
|
[self closeSockets];
|
|
@@ -3050,10 +3048,10 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3050
3048
|
|
|
3051
3049
|
// Update flags
|
|
3052
3050
|
|
|
3053
|
-
|
|
3051
|
+
self->flags |= kDidBind;
|
|
3054
3052
|
|
|
3055
|
-
|
|
3056
|
-
|
|
3053
|
+
if (!useIPv4) self->flags |= kIPv4Deactivated;
|
|
3054
|
+
if (!useIPv6) self->flags |= kIPv6Deactivated;
|
|
3057
3055
|
|
|
3058
3056
|
result = YES;
|
|
3059
3057
|
|
|
@@ -3140,7 +3138,7 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3140
3138
|
|
|
3141
3139
|
// Create the socket(s) if needed
|
|
3142
3140
|
|
|
3143
|
-
|
|
3141
|
+
if ((self->flags & kDidCreateSockets) == 0)
|
|
3144
3142
|
{
|
|
3145
3143
|
if (![self createSockets:&err])
|
|
3146
3144
|
{
|
|
@@ -3173,9 +3171,9 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3173
3171
|
|
|
3174
3172
|
// Updates flags, add connect packet to send queue, and pump send queue
|
|
3175
3173
|
|
|
3176
|
-
|
|
3174
|
+
self->flags |= kConnecting;
|
|
3177
3175
|
|
|
3178
|
-
|
|
3176
|
+
[self->sendQueue addObject:packet];
|
|
3179
3177
|
[self maybeDequeueSend];
|
|
3180
3178
|
|
|
3181
3179
|
result = YES;
|
|
@@ -3221,7 +3219,7 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3221
3219
|
|
|
3222
3220
|
// Create the socket(s) if needed
|
|
3223
3221
|
|
|
3224
|
-
|
|
3222
|
+
if ((self->flags & kDidCreateSockets) == 0)
|
|
3225
3223
|
{
|
|
3226
3224
|
if (![self createSockets:&err])
|
|
3227
3225
|
{
|
|
@@ -3240,9 +3238,9 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3240
3238
|
|
|
3241
3239
|
// Updates flags, add connect packet to send queue, and pump send queue
|
|
3242
3240
|
|
|
3243
|
-
|
|
3241
|
+
self->flags |= kConnecting;
|
|
3244
3242
|
|
|
3245
|
-
|
|
3243
|
+
[self->sendQueue addObject:packet];
|
|
3246
3244
|
[self maybeDequeueSend];
|
|
3247
3245
|
|
|
3248
3246
|
result = YES;
|
|
@@ -3473,7 +3471,7 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3473
3471
|
|
|
3474
3472
|
// Perform join
|
|
3475
3473
|
|
|
3476
|
-
|
|
3474
|
+
if ((self->socket4FD != SOCKET_NULL) && groupAddr4 && interfaceAddr4)
|
|
3477
3475
|
{
|
|
3478
3476
|
const struct sockaddr_in *nativeGroup = (const struct sockaddr_in *)[groupAddr4 bytes];
|
|
3479
3477
|
const struct sockaddr_in *nativeIface = (const struct sockaddr_in *)[interfaceAddr4 bytes];
|
|
@@ -3495,7 +3493,7 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3495
3493
|
|
|
3496
3494
|
result = YES;
|
|
3497
3495
|
}
|
|
3498
|
-
|
|
3496
|
+
else if ((self->socket6FD != SOCKET_NULL) && groupAddr6 && interfaceAddr6)
|
|
3499
3497
|
{
|
|
3500
3498
|
const struct sockaddr_in6 *nativeGroup = (const struct sockaddr_in6 *)[groupAddr6 bytes];
|
|
3501
3499
|
|
|
@@ -3549,7 +3547,7 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3549
3547
|
return_from_block;
|
|
3550
3548
|
}
|
|
3551
3549
|
|
|
3552
|
-
|
|
3550
|
+
if ((self->flags & kDidCreateSockets) == 0)
|
|
3553
3551
|
{
|
|
3554
3552
|
if (![self createSockets:&err])
|
|
3555
3553
|
{
|
|
@@ -3582,7 +3580,7 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3582
3580
|
}
|
|
3583
3581
|
}
|
|
3584
3582
|
|
|
3585
|
-
|
|
3583
|
+
}};
|
|
3586
3584
|
|
|
3587
3585
|
if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey))
|
|
3588
3586
|
block();
|
|
@@ -3637,9 +3635,9 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3637
3635
|
return_from_block;
|
|
3638
3636
|
}
|
|
3639
3637
|
result = YES;
|
|
3640
|
-
|
|
3638
|
+
}
|
|
3641
3639
|
|
|
3642
|
-
|
|
3640
|
+
}};
|
|
3643
3641
|
|
|
3644
3642
|
if (dispatch_get_specific(IsOnSocketQueueOrTargetQueueKey))
|
|
3645
3643
|
block();
|
|
@@ -3668,7 +3666,7 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3668
3666
|
return_from_block;
|
|
3669
3667
|
}
|
|
3670
3668
|
|
|
3671
|
-
|
|
3669
|
+
if ((self->flags & kDidCreateSockets) == 0)
|
|
3672
3670
|
{
|
|
3673
3671
|
if (![self createSockets:&err])
|
|
3674
3672
|
{
|
|
@@ -3677,9 +3675,9 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3677
3675
|
}
|
|
3678
3676
|
|
|
3679
3677
|
int value = flag ? 1 : 0;
|
|
3680
|
-
|
|
3678
|
+
if (self->socket4FD != SOCKET_NULL)
|
|
3681
3679
|
{
|
|
3682
|
-
|
|
3680
|
+
int error = setsockopt(self->socket4FD, SOL_SOCKET, SO_REUSEPORT, (const void *)&value, sizeof(value));
|
|
3683
3681
|
|
|
3684
3682
|
if (error)
|
|
3685
3683
|
{
|
|
@@ -3690,9 +3688,9 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3690
3688
|
result = YES;
|
|
3691
3689
|
}
|
|
3692
3690
|
|
|
3693
|
-
|
|
3691
|
+
if (self->socket6FD != SOCKET_NULL)
|
|
3694
3692
|
{
|
|
3695
|
-
|
|
3693
|
+
int error = setsockopt(self->socket6FD, SOL_SOCKET, SO_REUSEPORT, (const void *)&value, sizeof(value));
|
|
3696
3694
|
|
|
3697
3695
|
if (error)
|
|
3698
3696
|
{
|
|
@@ -3732,7 +3730,7 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3732
3730
|
return_from_block;
|
|
3733
3731
|
}
|
|
3734
3732
|
|
|
3735
|
-
|
|
3733
|
+
if ((self->flags & kDidCreateSockets) == 0)
|
|
3736
3734
|
{
|
|
3737
3735
|
if (![self createSockets:&err])
|
|
3738
3736
|
{
|
|
@@ -3740,10 +3738,10 @@ enum GCDAsyncUdpSocketConfig
|
|
|
3740
3738
|
}
|
|
3741
3739
|
}
|
|
3742
3740
|
|
|
3743
|
-
|
|
3741
|
+
if (self->socket4FD != SOCKET_NULL)
|
|
3744
3742
|
{
|
|
3745
3743
|
int value = flag ? 1 : 0;
|
|
3746
|
-
|
|
3744
|
+
int error = setsockopt(self->socket4FD, SOL_SOCKET, SO_BROADCAST, (const void *)&value, sizeof(value));
|
|
3747
3745
|
|
|
3748
3746
|
if (error)
|
|
3749
3747
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-webdriveragent",
|
|
3
|
-
"version": "10.5.
|
|
3
|
+
"version": "10.5.2",
|
|
4
4
|
"description": "Package bundling WebDriverAgent",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"types": "./build/index.d.ts",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"appium-ios-device": "^3.0.0",
|
|
78
78
|
"appium-ios-simulator": "^8.0.0",
|
|
79
79
|
"async-lock": "^1.0.0",
|
|
80
|
-
"asyncbox": "^
|
|
80
|
+
"asyncbox": "^4.0.1",
|
|
81
81
|
"axios": "^1.4.0",
|
|
82
82
|
"bluebird": "^3.5.5",
|
|
83
83
|
"lodash": "^4.17.11",
|