summaryrefslogtreecommitdiff
path: root/libproxy/proxy.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #128 from mcatanzaro/mcatanzaro/#68Dominique Leuenberger2020-11-101-1/+3
|\ | | | | Remove nonfunctional and crashy pacrunner caching
| * Remove nonfunctional and crashy pacrunner cachingMichael Catanzaro2020-09-101-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libproxy currently attempts to cache pacrunner objects in the pr member variable of its pacrunner_extension object. This is broken, though, because it relies on the pacrunner object also being stored in pacrunner_extension's last member variable, which is never written to. So that caching has never worked properly. In practice, it only does one thing: it causes a threadsafety bug, #68, because it causes the old pacrunner object to be deleted on the thread that is creating the new pacrunner, which is illegal for both the mozjs and WebKit-based pacrunner extensions that expect their objects to be deleted on the same thread they were created on. This patch was originally written by Dan Winship for Fedora 19. It got dropped in Fedora 24, then resurrected again for Fedora 28 after we noticed 30,000 crash reports. I've tweaked it a bit to completely remove the unused member variables. Finally, note that this code is not exception-safe: if an exception is thrown, the pacrunner could be leaked. But this seems to be a common problem throughout libproxy. It should be fixed by using std::unique_ptr instead of raw new and delete. https://bugzilla.redhat.com/show_bug.cgi?id=998232 Fixes #68
* | Fix mismatched new[]/delete[] in proxy.cppMichael Catanzaro2020-09-101-4/+4
|/ | | | | | | Using the wrong delete operator is undefined behavior. All this manual new/delete really ought to be replaced by std::unique_ptr, but this will suffice for now.
* Small performance improvementsAlbert Astals Cid2019-10-041-2/+2
| | | | | * pass strings by const & instead of copy * Search single chars as chars and not as strings
* Add public px_proxy_factory_free_proxies functionFabian Vogt2017-09-201-0/+10
| | | | Fixes issue #43.
* fix spelling mistakeEdward Betts2017-02-021-1/+1
|
* Allow multiple result to be returned from static confignicolas.dufresne@gmail.com2012-07-051-64/+105
|
* Trim the ignore-values before comparing themdominique.leuenberger@gmail.com2011-08-081-0/+1
|
* fix mismatched delete[]npmccallum2011-02-061-1/+1
|
* two more win32 fixesnpmccallum2010-09-261-1/+1
|
* Inlclude typelib in proxy.cpp for debug messages.dominique.leuenberger@gmail.com2010-09-261-0/+1
|
* Ported libproxy to new libmodman API/ABInicolas.dufresne2010-08-181-2/+8
| | | | This solves issue 133 by using real builtin modules instead of relying on symbols being visible in current process.
* Don't leak lock when pacrunner throws exceptionnicolas.dufresne2010-06-041-37/+57
|
* Reduce excessive string copy when dealing with ignoresnicolas.dufresne2010-05-171-6/+9
|
* Remove scheme base filterring on config extensionnicolas.dufresne2010-04-021-19/+11
| | | | | Filtering scheme returned by config modules was odd. This would mean that libproxy knows all the protocols that has internal proxy mechanism and even guess the one that does not exist yet.
* Allow configuring modules PATH through environment variablenicolas.dufresne2010-03-291-2/+7
|
* Add support for socks4 and socks5 in the PACnpmccallum2010-03-261-0/+4
|
* remove unneeded setenv macronpmccallum2010-03-121-1/+0
|
* fix the case where ';' is the last character from the pac responsenpmccallum2010-03-061-1/+2
|
* correct some delete references; fixes issue 91; patch from Erik van Pienbroeknpmccallum2010-03-051-2/+3
|
* add a little more debugging messagesnpmccallum2010-02-251-2/+7
|
* fix all symbols with a leading '_'npmccallum2010-02-241-16/+16
|
* re-enable exception trapping in the C apinpmccallum2010-02-241-6/+7
|
* fix a crasher if debug is enabled and no config_modules are found; make ↵npmccallum2010-02-241-4/+9
| | | | builtin modules work on win32
* add support for builtin modulesnpmccallum2010-02-241-0/+9
|
* make pac fetching work on win32npmccallum2010-02-221-1/+7
|
* change cout -> cerr for debug messagesnpmccallum2010-02-221-13/+13
|
* add initializer for this->wpadnpmccallum2010-02-221-0/+1
|
* add debug outputnpmccallum2010-02-221-7/+26
|
* add support in core libproxy for inverting ignore stringsnpmccallum2010-02-171-3/+8
|
* add support for win32 mutexesnpmccallum2010-02-101-8/+22
|
* fix a never-exit-a-loop bugnpmccallum2010-02-081-8/+5
|
* add double load support for the second round of symbol testsnpmccallum2010-02-081-0/+1
|
* remove googlecode from the namespacenpmccallum2010-02-051-5/+1
|
* massive rework; split off libmodman; make unit tests for libmodman; remove ↵npmccallum2010-02-051-41/+37
| | | | config_wpad; remove config_file (both intenal and module); remove config ordering support; merge lukas' kde plugin rework
* config_w32reg actually works now, including ignore support; other misc win32 ↵npmccallum2010-02-041-2/+8
| | | | fixes
* remove builtin module support; there is a better way to do thisnpmccallum2010-01-281-22/+0
|
* implement conditional modulesnpmccallum2010-01-241-0/+13
|
* make builtin modules part of the module_manager apinpmccallum2010-01-241-0/+9
|
* match the pacrunner plugins to the new pacrunner api; convert inet_ntop() ↵npmccallum2010-01-241-1/+1
| | | | uses to getnameinfo()
* Fix compilation warnings on win32npmccallum2010-01-231-1/+2
|
* make visibility hidden by default and begin to export symbols; minor reworknpmccallum2010-01-231-11/+10
|
* fix unix breakage from win32 build fixesnpmccallum2010-01-221-12/+19
|
* the "OMG, I think it builds on win32!" commitnpmccallum2010-01-211-9/+13
|
* yet another set of build fixes for win32npmccallum2010-01-201-3/+3
|
* more win32 build fixes, including disabling pthread on win32npmccallum2010-01-201-2/+16
|
* re-enable kde module; fix lots of warningsnpmccallum2010-01-171-5/+3
|
* make code more c++ish (major rework)npmccallum2010-01-171-335/+219
|
* build using c++npmccallum2010-01-171-0/+446