Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
U
uniset2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
UniSet project repositories
uniset2
Commits
06a812cf
Commit
06a812cf
authored
Nov 04, 2015
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(RRDServer): добавил проверку на максимальную разрешённоую длину имени
для dsname.
parent
3d51f988
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
35 additions
and
8 deletions
+35
-8
libuniset2.spec
conf/libuniset2.spec
+4
-1
RRDServer.cc
extensions/RRDServer/RRDServer.cc
+23
-6
RRDServer.h
extensions/RRDServer/RRDServer.h
+8
-1
No files found.
conf/libuniset2.spec
View file @
06a812cf
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
Name: libuniset2
Name: libuniset2
Version: 2.2
Version: 2.2
Release: alt1
0
Release: alt1
1
Summary: UniSet - library for building distributed industrial control systems
Summary: UniSet - library for building distributed industrial control systems
...
@@ -452,6 +452,9 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
...
@@ -452,6 +452,9 @@ mv -f %buildroot%python_sitelibdir_noarch/* %buildroot%python_sitelibdir/%oname
# ..
# ..
%changelog
%changelog
* Tue Nov 03 2015 Pavel Vainerman <pv@altlinux.ru> 2.2-alt11
- RRDServer: add support 'dsname', check RRD_MAX_DSNAME_LEN
* Fri Oct 30 2015 Pavel Vainerman <pv@altlinux.ru> 2.2-alt10
* Fri Oct 30 2015 Pavel Vainerman <pv@altlinux.ru> 2.2-alt10
- fixes after coverity scan..
- fixes after coverity scan..
- minor fixes
- minor fixes
...
...
extensions/RRDServer/RRDServer.cc
View file @
06a812cf
...
@@ -58,8 +58,13 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
...
@@ -58,8 +58,13 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
string
fv
(
it
.
getProp
(
"filter_value"
)
);
string
fv
(
it
.
getProp
(
"filter_value"
)
);
string
cf
(
it
.
getProp
(
"ds_field"
)
);
string
cf
(
it
.
getProp
(
"ds_field"
)
);
string
ds
(
cf
+
"_dsname"
);
if
(
cf
.
empty
()
)
if
(
cf
.
empty
()
)
{
cf
=
ff
+
fv
+
"_ds"
;
cf
=
ff
+
fv
+
"_ds"
;
ds
=
ff
+
fv
+
"_dsname"
;
}
int
rrdstep
=
it
.
getPIntProp
(
"step"
,
5
);
int
rrdstep
=
it
.
getPIntProp
(
"step"
,
5
);
int
lastup
=
it
.
getPIntProp
(
"lastup"
,
0
);
int
lastup
=
it
.
getPIntProp
(
"lastup"
,
0
);
...
@@ -79,7 +84,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
...
@@ -79,7 +84,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
{
ostringstream
err
;
ostringstream
err
;
err
<<
myname
<<
"(init): rrd='"
<<
fname
<<
"' Unknown RRA list"
;
err
<<
myname
<<
"(init): rrd='"
<<
fname
<<
"' Unknown RRA list"
;
mycrit
<<
err
.
str
();
mycrit
<<
err
.
str
()
<<
endl
;
throw
SystemError
(
err
.
str
());
throw
SystemError
(
err
.
str
());
}
}
...
@@ -91,7 +96,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
...
@@ -91,7 +96,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
{
ostringstream
err
;
ostringstream
err
;
err
<<
myname
<<
"(init): rrd='"
<<
fname
<<
"' Unkown RRA item.. <item rra='...'"
;
err
<<
myname
<<
"(init): rrd='"
<<
fname
<<
"' Unkown RRA item.. <item rra='...'"
;
mycrit
<<
err
.
str
();
mycrit
<<
err
.
str
()
<<
endl
;
throw
SystemError
(
err
.
str
());
throw
SystemError
(
err
.
str
());
}
}
...
@@ -116,7 +121,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
...
@@ -116,7 +121,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
{
ostringstream
err
;
ostringstream
err
;
err
<<
myname
<<
"(init): Not found section <sensors>"
;
err
<<
myname
<<
"(init): Not found section <sensors>"
;
mycrit
<<
err
.
str
();
mycrit
<<
err
.
str
()
<<
endl
;
throw
SystemError
(
err
.
str
());
throw
SystemError
(
err
.
str
());
}
}
...
@@ -126,7 +131,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
...
@@ -126,7 +131,7 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
{
ostringstream
err
;
ostringstream
err
;
err
<<
myname
<<
"(init): section <sensors> empty?!"
;
err
<<
myname
<<
"(init): section <sensors> empty?!"
;
mycrit
<<
err
.
str
();
mycrit
<<
err
.
str
()
<<
endl
;
throw
SystemError
(
err
.
str
());
throw
SystemError
(
err
.
str
());
}
}
...
@@ -146,11 +151,23 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
...
@@ -146,11 +151,23 @@ void RRDServer::initRRD( xmlNode* cnode, int tmID )
{
{
ostringstream
err
;
ostringstream
err
;
err
<<
myname
<<
"(init): Unknown create parameters ('"
<<
cf
<<
"')"
;
err
<<
myname
<<
"(init): Unknown create parameters ('"
<<
cf
<<
"')"
;
mycrit
<<
err
.
str
();
mycrit
<<
err
.
str
()
<<
endl
;
throw
SystemError
(
err
.
str
());
}
std
::
string
dsname
(
it1
.
getProp
(
ds
));
if
(
dsname
.
empty
()
)
dsname
=
it1
.
getProp
(
"name"
);
if
(
dsname
.
size
()
>
RRD_MAX_DSNAME_LEN
)
{
ostringstream
err
;
err
<<
myname
<<
"(init): DSNAME="
<<
dsname
<<
"("
<<
dsname
.
size
()
<<
") > RRD_MAX_NAME_SIZE("
<<
RRD_MAX_DSNAME_LEN
<<
")"
;
mycrit
<<
err
.
str
()
<<
endl
;
throw
SystemError
(
err
.
str
());
throw
SystemError
(
err
.
str
());
}
}
std
::
string
dsname
(
it1
.
getProp
(
"name"
));
ostringstream
nm
;
ostringstream
nm
;
nm
<<
"DS:"
<<
dsname
<<
":"
<<
a
;
nm
<<
"DS:"
<<
dsname
<<
":"
<<
a
;
dslist
.
push_back
(
nm
.
str
());
dslist
.
push_back
(
nm
.
str
());
...
...
extensions/RRDServer/RRDServer.h
View file @
06a812cf
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
- \ref sec_RRD_Comm
- \ref sec_RRD_Comm
- \ref sec_RRD_Conf
- \ref sec_RRD_Conf
- \ref sec_RRD_DSName
\section sec_RRD_Comm Общее описание RRDServer
\section sec_RRD_Comm Общее описание RRDServer
...
@@ -51,10 +52,14 @@
...
@@ -51,10 +52,14 @@
<item id="54" iotype="AI" name="AI54_S" textname="AI sensor 54" rrd="1" rrd1_ds="GAUGE:20:U:U"/>
<item id="54" iotype="AI" name="AI54_S" textname="AI sensor 54" rrd="1" rrd1_ds="GAUGE:20:U:U"/>
<item id="55" iotype="AI" name="AI55_S" textname="AI sensor 55" rrd="1" rrd1_ds="GAUGE:20:U:U"/>
<item id="55" iotype="AI" name="AI55_S" textname="AI sensor 55" rrd="1" rrd1_ds="GAUGE:20:U:U"/>
<item id="56" iotype="AI" name="AI56_S" textname="AI sensor 56" rrd="2" rrd2_ds="COUNTER:20:U:U"/>
<item id="56" iotype="AI" name="AI56_S" textname="AI sensor 56" rrd="2" rrd2_ds="COUNTER:20:U:U"/>
<item id="57" iotype="AI" name="AI57_S"
textname="AI sensor 57" rrd="2" rrd2_ds="DERIVE:20:U:U"/>
<item id="57" iotype="AI" name="AI57_S" rrd2_dsname='A57MyRRDName'
textname="AI sensor 57" rrd="2" rrd2_ds="DERIVE:20:U:U"/>
...
...
</sensors>
</sensors>
\endcode
\endcode
\section sec_RRD_DSName Именование параметров
По умолчанию в качестве имени параметра берётся поле \b 'ds_field'_dsname='', если это поле не указано, то берётся \b name датчика.
\warning Имя не может превышать RRDServer::RRD_MAX_DSNAME_LEN.
*/
*/
class
RRDServer
:
class
RRDServer
:
public
UObject_SK
public
UObject_SK
...
@@ -81,6 +86,8 @@ class RRDServer:
...
@@ -81,6 +86,8 @@ class RRDServer:
return
mylog
;
return
mylog
;
}
}
const
size_t
RRD_MAX_DSNAME_LEN
=
19
;
/*!< максимальная длинна имени в RRD */
protected
:
protected
:
RRDServer
();
RRDServer
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment