aboutsummaryrefslogtreecommitdiff
path: root/src/querymanager.cc
diff options
context:
space:
mode:
authorfusion32 <marcopuzziello@gmail.com>2025-07-13 10:04:53 -0300
committerfusion32 <marcopuzziello@gmail.com>2025-07-13 10:04:53 -0300
commitf827fcc84815c3727aae652d2a60a801b2432768 (patch)
treeec0d514cf052ac65585ed02fc12f8630432e9d7d /src/querymanager.cc
parent1cad8468cbaf61309a64194fca547a67a700a6da (diff)
downloadquerymanager-f827fcc84815c3727aae652d2a60a801b2432768.tar.gz
querymanager-f827fcc84815c3727aae652d2a60a801b2432768.zip
reorganize query functions and impl SET_NOTATION
Diffstat (limited to 'src/querymanager.cc')
-rw-r--r--src/querymanager.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/querymanager.cc b/src/querymanager.cc
index 7d6c830..dddb86f 100644
--- a/src/querymanager.cc
+++ b/src/querymanager.cc
@@ -129,6 +129,31 @@ bool StringCopy(char *Dest, int DestCapacity, const char *Src){
return StringCopyN(Dest, DestCapacity, Src, SrcLength);
}
+bool ParseIPAddress(const char *String, int *OutAddr){
+ int Addr[4];
+ if(sscanf(String, "%d.%d.%d.%d", &Addr[0], &Addr[1], &Addr[2], &Addr[3]) != 4){
+ LOG_ERR("Invalid IP Address format \"%s\"", String);
+ return false;
+ }
+
+ if(Addr[0] < 0 || Addr[0] > 0xFF
+ || Addr[1] < 0 || Addr[1] > 0xFF
+ || Addr[2] < 0 || Addr[2] > 0xFF
+ || Addr[3] < 0 || Addr[3] > 0xFF){
+ LOG_ERR("Invalid IP Address \"%s\"", String);
+ return false;
+ }
+
+ if(OutAddr){
+ *OutAddr = ((int)Addr[0] << 24)
+ | ((int)Addr[1] << 16)
+ | ((int)Addr[2] << 8)
+ | ((int)Addr[3] << 0);
+ }
+
+ return true;
+}
+
bool ReadBooleanConfig(bool *Dest, const char *Val){
ASSERT(Dest && Val);
*Dest = StringEqCI(Val, "true");