* Execute ConVarQueryFinished if client disconnects
So people passing handles to the extra data can close them, adds a new return value to check if this happened
* Update based on suggestion
Co-authored-by: Asher Baker <asherkin@limetech.io>
* Update based on notes
* Normalize
* Pass along cookie handle instead of invalid
Co-authored-by: Asher Baker <asherkin@limetech.io>
* Add PostgreSQL DBI extension
Bug #3849
This adds a postgresql database driver called "pgsql".
The ambuild script changes could be very wrong ;)
* Add pgsql support to clientprefs
This was originally made by Lyfe in bug 3849! Thanks for that.
PostgreSQL supports the 'IF NOT EXISTS' clause when creating tables
since version 9.1, so i've switched to use that.
* Added pgsql support to sql-admin-manager
* Add --pgsql-path to ambuild configure
* More ambuild fixes
* Compile libpq with ambuild
* Try to generate postgres configs
* Add dummy config file
* More ambuild fixes
* Get errorcode and readable error in preparequery
No need to stop getting the errorCode, if the error string should be
retrieved. Just return both!
* Fix indentation in AMBuilderPGSQL
* Try to patch and configure postgres through ambuild
* Revert "Try to patch and configure postgres through ambuild"
This reverts commit 68dfc82b8eb0ce11f621af67ec247b5f47e4a189.
* Update to use PostgreSQL 9.4
* Move postgres preparation into seperate script
Fetching, preparing and configuring of the postgresql sourcecode
is done in a seperate prepare_postgresql.sh script now.
People can use this script for their manual builds,
if they don't want to use checkout-deps.sh.
* Add patch to configure.in again
Remove the version check for autoconf in postgres 9.4 too.
* Nit: Support older objdirs for hasPgSql ambuild option
* Update to use PostgreSQL 9.4.6
* Use newer AMTL and PGSQL 9.6
* Fix threaded queries
When running the thread part of a query, it already gets the atomic
lock. Don't try to get it twice in that case.
Use a seperate lock to protect access to the lastInsertID and
lastAffectedRows variables.
* Fix SetCharacterSet racing with threaded queries
Same fix like in the mysql driver.
* Use ke::AutoLock for lastInsertID mutex
* Fix fetching one more row than available
Don't try to access a row that doesn't exist when iterating rows.
* Improve sanity checks on column access
Don't call libpq functions with out of bounds column indices.
* Let QuoteString return false if quoting failed
* Fix build for x64 support changes and update to PGSQL 9.6.9
* Fix linux build
* Fix building of connection options string
snprintf doesn't support overlapping buffers.
* Update to PostgreSQL 9.6.15
* Fix crash after freeing first IQuery object
* Fix code crunch
* Fix memory leak, cleanup
* Nuke MSVC project and Makefile
* Remove unsupported numeric error codes
* Use STL threads
* Add prebuilt libpq for Linux and Windows
* Restore and fix version.rc file
* Add PostgreSQL build instructions
* Add prebuilt libpq for Mac
* Add win64 libpq build
This is version 9.6.15 since that's what I still had laying around.
* Fix buildscript
* Fix x64 build on linux and mac
Co-authored-by: Erik Minekus <tsunami@tsunami-productions.nl>
This bug was found as part of justCTF 2020 in the PainterHell challenge by cypis. Thank you!
Admins with the root flag could inject their own queries towards the admin database connection.
The sql-admin-manager plugin is disabled by default.
* Fixed unauthorized menu usages
Let's say we have kick flag but don't have admin menu flag.
When we type !kick, menu opens with a back button, when we click back button, we go parent menu without admin menu flag
* Update ban.sp
* Improvements on !admin menu flags
Lets say we have override the sm_unmute command and changed it to ADMFLAG_CUSTOM1.
Then create an admin, we gived our admin ADMFLAG_Chat flag, admin can't use sm_unmute command cause it doesnt have access to this command.
But if admin go into "!admin" menu then, he will able to run sm_unmute on "player command" menus
* removed unauthorized menu items
* Deleted Whitespace and ITEMDRAW_DEFAULT
* Update basevotes
When a player leaves during a voteban, he will be banned anyway. Also added a cvar with a ban time setting.
* Update basevotes.sp
* Added VoiceHook functions
* Update extension.h
* Update extension.h
* Code optimization
* Added support for more engines
* Invalidate timers
* Fixes
* Update extension.cpp
* Update voice.cpp
* correct Forward event type to ET_Ignore.
* sdktools_voice: de-implement IsClientSpeaking
* sdktools_voice: Add notice/unbind IsClientSpeaking
Co-authored-by: Kyle Sanderson <kyle.leet@gmail.com>
Added game color config & specific settings for L4D/L4D2
Created the following keys:
"Team1Color" "75,255,75,255"
"Team2Color" "255,75,75,255"
"Team3Color" "75,75,255,255"
"Team4Color" "255,128,0,255"
"TeamUnknownColor" "255,255,255,255"
Added a specific setting for L4D/L4D2 game:
"Team2Color" "75,75,255,255"
"Team3Color" "255,75,75,255"
This change checks the nomination against the map arraylist. If the nomination matches multiple results, those results are then added to a menu to allow the client to select available maps. The maps added to the menu go against the same checks as the normal nomination menu and wont allow nomination of disabled maps.
Example image of /nominate jump_b
https://i.imgur.com/ZdzB0gk.png
If reply source is console, menus wont be generated and it will attempt to nominate as normal.
* Add natives to work with 64 bit Protobuf values
* Fix linux build
* FIX alignment requirements
* FIX alignment requirements V2
* Remove legacy API
* Inattention
This has been another constant source of confusion since the C99 ones were added to the strftime documentation we link.
It'd be nice to have a consistent implementation inside SM in the future.
* More TR natives
* Fix small typo
* Fix another typo
* Fix TR_AllSolid description
* Change Disp to Displacement
* Reorder params in TR_GetSurfaceName
* Fix TR_GetSurfaceName
* Another fix for TR_GetSurfaceName -_-
* Change if block to switch
* Make handle first param in TR_GetSurfaceName
* Reorder TR_GetStartPosition params
* Make TranslatePartitionFlags static
* Change tabs used for formatting to spaces
* Change inline comment style to be consistent with rest of file
This change makes it so /kick, /ban, and /map open the already created methods for displaying their menus when there are no args.
The reason for the feature is to take advantage of menus that already exist and to make the commands easier to use.
The client == 0 check prevents them from opening if it was ran via rcon, sm_rcon, or server command. Client auth is also checked because its a registered admin command.
Usage params will display if client == 0 and args < min
For example, a moderator wants to change a map, instead of running through the admin menu, they can instead type just /map to display available maps and choose one.
If a mod wants to quickly ban or kick someone without having to either run through the admin menu or type it out, they could then type the corresponding commands with no args to open the menus.
These two base plugins are using the MAPLIST_FLAG_NO_DEFAULT when they shouldn't, which causes much user (and SM developer) confusion as it is completely counter to the documentation.
The `TopMenu` methodmap natives weren't marked as optional if the extension was optional like the other normal natives.
The `Regex` natives weren't marked as optional at all before if the regex extension was included optionally.
This makes the error message cleaner in case topmenus aren't loaded.
```
adminmenu.smx (Admin Menu): Required extension "TopMenus" file("topmenus.ext") not running
basebans.smx (Basic Ban Commands): Native "TopMenu.Display" was not found
```
* Match old DataPack behavior when overwriting data
* Make RemoveItem more flexible
* Ditch implied RemoveItem behavior & asher fixes
* KyleS nits - but fixed before he says them
* Add back implicit behavior
* Update CDataPack.cpp
Committing to the spec.
* Update CDataPack.h
* fixup removing last item if explicitly requested
* Fix logic for accepting pack pos, rather than index
* Fixup IsReadable
* headache is over now
* Fix rockthevote not clearing g_Voted on fakeclients.
* remove g_RTVAllowed in rockthevote as it's unused.
* Fix basebans using the wrong forward for configs.
* Prevent sm_addban from banning an immune steam adminid.
* Sprinkle in IsChatTrigger checks to plugins with plaintext chat hooks.
* fixup g_Voted[client] in OnClientDisconnect
* Add profiler methodmap
* No tag mismatches here
thanks pm
* Lets fix some documentation while we're here.
* Use proper methodmap documentation style
Across sm we use `//` for methodmap docs, so lets just keep this consistent
Apparently people use the float natives for actual float arithmetic; they're not really intended to be used directly.
* Prevent use of primitive float operation functions
* Deprecate float operation functs
* Alias Float natives to internal names
* Add clarifying note
* Remove use of internal FloatDiv native
* Added translation more to basechat
Also fixed colors, because it didn't work without `\x01` at begin of string.
* Fixed cs:go colors, thanks Bara20
* Added 'space' at the start of string.
* Added check for Engine_CSGO, to remove offset on other games
* forgot one row