Previously, BUrlRequest returns data received via a callback that can't
return any value. This approach have several issues:
- It's not possible to signify failures to the request.
- Users have to implement custom listeners just to handle the common
case of outputting to a buffer/file/etc.
- The received data has to be serialized into BMessage when
BUrlProtocolDispatchingListener is employed. This can cause a
noticible slowdown in real-world scenarios as evident by #10748.
With this change, BUrlRequest will output directly into a BDataIO, which
exposes a richer API for request handlers to work with (for example a
BitTorrent client can request a BPositionIO for non-linear data
delivery), as well as simplifying common cases for users.
The adaptation only requires one additional API:
BHttpRequest::SetStopOnError(). This API simply instructs the HTTP
request handler to cancel the request if an HTTP error is occurred.
Change-Id: I4160884d77bff0e7678e0a623e2587987704443a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3084
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
The switch to make BUrlResult serializable was debuted in
f9e1854f19 with the rationale is that
BHttpRequest auto-redirection might cause the headers to become
obsolete by the time a client process the BMessage received from
BUrlProtocolDispatchingListener.
With the change to BHttpRequest to not notify listeners when
auto-redirection is enabled, this is no longer the case and the
serialization code can go away now. This simplifies BUrlResult and its
subclasses, and gain us some performance for clients using
BUrlProtocolDispatchingListener as the result object no longer has to be
serialized.
This also change the ABI of BUrlProtocolListener::HeadersReceived to no
longer passing a BUrlResult.
Additionally, BUrlResult and BHttpResult now express the size of the content
as an off_t, thus allowing results larger than 4 GB.
Change-Id: I9dd29a8b26fdd9aa8e5bbad8d1728084f136312d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3082
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
When the user enable auto-redirection, what they meant is that they do
not want to handle redirections, thus we should take total control of this
step and hide it from the user. In fact, a majority of in-tree users
write code to disable their listener when a redirection happen.
This should also allow us to simplify BUrlResult, which has been turned
into a BArchivable for the sole reason of "preserving" headers when
auto redirect is enabled when used with BUrlDispatchingListener, which
has been shown to have little (if any) practical usage.
Change-Id: I9b10b81de0a13edbaec25f6b48ed7a4335ea691a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3081
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Further removal of the use of custom list class;
this time part of the test engine inside HD.
Relates To #15534
Change-Id: Ia1f1d7c2577f92bba96da392fd48949a13b5a169
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3745
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
When getting icon is failed, get_team_name_and_icon()
does not return false, so bitmap allocated to
infoPack.team_icon can be leaked.
* Delete bitmap in get_team_name_and_icon(), not in caller.
* Return false when getiing icon is failed.
Change-Id: Ib65065b59b70cd839e6deda4e1142bd104072d84
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3744
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
To avoid having to upgrade cache-data formats,
drop the caches when the application starts with
a different version from last time the
application launches.
Change-Id: I2f5b831b6a4fc570457bc633fd440a9021648b02
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3749
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
fItems are allocated by new[] at line 31, but deallocated by delete.
Pointed out by Clang Static Analyzer.
Change-Id: I1d8ae0b2214290155612d4b5c6d1ce56676cc892
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3746
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Follow-up to #16670.
I have previously changed the locale kit to load all add-ons once at
start, but did not notice that it would unload them later on. This can
also create race conditions if the locale kit is used from inside
load_add_on (as is the case in translation kit add-ons for example).
Should fix the remaining problems in #16670
Change-Id: I0e22f8e146abe4fc85d8357ebe178db948fec1cd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3734
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Further removal of the use of custom list class;
this time with the generic undo functionality.
Relates To #15534
Change-Id: I804a31abc07f42f4f1695562b6f948feb465db0c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3739
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
irssi uses the unichar typename with a different type.
Change-Id: I2ee9dcf685f4832dd1b3c7d68f4686d69de50fb7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3656
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
* Fullscreen view without window border or deskbar
* Save current view as .png
Change-Id: I8abbc7c5dc0af06ee26aa29afdef79a41944438c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/867
Reviewed-by: humdinger <humdingerb@gmail.com>
Reviewed-by: Ryan Leavengood <leavengood@gmail.com>
Further removal of the use of custom list class;
this time with the package action lists.
Also resolve an error created by a last minute
change in the last pull request for this ticket.
Relates To #15534
Change-Id: I85dd40b7ef664f93b24ca5041fa58cca17d72299
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3735
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Further removal of the use of custom list class;
this time with the package lists.
Relates To #15534
Change-Id: I1f01ed9d5ddbd7754097ce0adbf505d6ba17fd2f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3732
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Change-Id: I18867f2c1188b43d5c663a7ceb3aab4a4dedb454
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3731
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
CLang fails to build ISL otherwise, and if you are setting up
cross compiling, you should have a modern enough compiler
Fixes#16434
Change-Id: Ieb4a33015899896ea3bb2d1abc59b10fe0b4b3f2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3730
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Dereference operator is defined in BReference.
Change-Id: Iccba8ad4a29e354aa9cdbf2e1a5ddbc9687af677
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3489
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Keyboard don't work on either my machines without removing it
Change-Id: I52285187cbefa5b2c71bd4c086a269153dfdccec
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3724
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
pswalk has issues in code we don't use for gcc 2.95.3, so just disable
Can we drop gcc2.95.3 soon?
Change-Id: I334b5029f97ad66b46bd0054c05c75062fec27fc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3723
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
I have no idea why this can happen or if there is a deeper problem.
Should fix#16546.
Change-Id: Ia160e293eabefae636ce4c861864c99b0aaa68db
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3717
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
* Console-control is non-standard, but is needed on older Apple
hardware to transition their EFI bioses to text-mode so our
bootloader menu can be used / seen.
* Console-control seems to exist on some older Intel hardware as
well. Enabling it breaks our keyboard support. (maybe when enabled
a different legacy UEFI call needs used to input or something)
* Instead of trying to use a deprecated EFI call in a meaningful
way, just do the "bare minimum" of disabling it when it exists.
Change-Id: I20c3e026e02996371f632361c6899532c195bbf8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3685
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>