GIT.Harvie.CZ
/
svn
/
Prometheus-QoS
/
.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
should be completely fixed now
[svn/Prometheus-QoS/.git]
/
parsehosts.c
diff --git
a/parsehosts.c
b/parsehosts.c
index d37a71657236390195709271a7af41ea61dcdee2..1e8dbe6773502e9b18f580570257cba552fe20df 100644
(file)
--- a/
parsehosts.c
+++ b/
parsehosts.c
@@
-41,20
+41,23
@@
void TheIP(char *ipaddr)
ip->keyword = keywords;
\r
ip->v6 = (strchr(ip->addr,':')!=NULL);
\r
push(ip,ips);
\r
ip->keyword = keywords;
\r
ip->v6 = (strchr(ip->addr,':')!=NULL);
\r
push(ip,ips);
\r
+ ip_count++;
\r
}
\r
\r
}
\r
\r
+struct IP *lastIP6;
\r
+
\r
/* == This function strips extra characters after IPv4 address and stores it = */
\r
/* == This function strips extra characters after IPv4 address and stores it = */
\r
-
void
parse_ip(char *str)
\r
+parse_ip(char *str)
\r
{
\r
char *ptr, *ipaddr, *ip6range = NULL, *ipname = NULL, *lmsid = NULL;
\r
\r
{
\r
char *ptr, *ipaddr, *ip6range = NULL, *ipname = NULL, *lmsid = NULL;
\r
\r
- if(ip6prefix) /* Try this only if IPv6 subsystem is active...*/
\r
+ if(ip6prefix) /* Try this only if IPv6 subsystem is active...
*/
\r
{
\r
ptr = strstr(str, "::");
\r
if(ptr && ptr-str > 4)
\r
{
\r
ptr -= 4;
\r
{
\r
ptr = strstr(str, "::");
\r
if(ptr && ptr-str > 4)
\r
{
\r
ptr -= 4;
\r
- duplicate(ptr,ip6range);
\r
+ duplicate(ptr,
ip6range);
\r
ptr = strstr(ip6range, "::");
\r
if(ptr)
\r
{
\r
ptr = strstr(ip6range, "::");
\r
if(ptr)
\r
{
\r
@@
-104,11
+107,16
@@
void parse_ip(char *str)
TheIP(ip6range);
\r
}
\r
ip->name = ip6range;
\r
TheIP(ip6range);
\r
}
\r
ip->name = ip6range;
\r
- ip->
sharing = ipname;
\r
+ ip->
keyword = defaultkeyword; /* settings for default keyword */
\r
if(lmsid)
\r
{
\r
ip->lmsid = atoi(lmsid);
\r
}
\r
if(lmsid)
\r
{
\r
ip->lmsid = atoi(lmsid);
\r
}
\r
+ lastIP6 = ip;
\r
+ }
\r
+ else
\r
+ {
\r
+ lastIP6 = NULL;
\r
}
\r
\r
if_exists(ip, ips, eq(ip->addr,ipaddr));
\r
}
\r
\r
if_exists(ip, ips, eq(ip->addr,ipaddr));
\r
@@
-147,9
+155,13
@@
void parse_hosts(char *hosts)
{
\r
substring += 8; /* "sharing-" */
\r
parse_ip(str);
\r
{
\r
substring += 8; /* "sharing-" */
\r
parse_ip(str);
\r
- ip_count++;
\r
ip->sharing = substring;
\r
ip->keyword = defaultkeyword; /* settings for default keyword */
\r
ip->sharing = substring;
\r
ip->keyword = defaultkeyword; /* settings for default keyword */
\r
+ if(lastIP6)
\r
+ {
\r
+ lastIP6->sharing = substring;
\r
+ lastIP6 = NULL;
\r
+ }
\r
while(*substring and *substring != '\n')
\r
{
\r
substring++;
\r
while(*substring and *substring != '\n')
\r
{
\r
substring++;
\r
@@
-163,7
+175,11
@@
void parse_hosts(char *hosts)
if_exists(keyword,keywords,(substring=strstr(str,keyword->key)))
\r
{
\r
parse_ip(str);
\r
if_exists(keyword,keywords,(substring=strstr(str,keyword->key)))
\r
{
\r
parse_ip(str);
\r
- ip_count++;
\r
+ if(lastIP6)
\r
+ {
\r
+ lastIP6->sharing = ip->name;
\r
+ lastIP6 = NULL;
\r
+ }
\r
ip->keyword = keyword;
\r
keyword->ip_count++;
\r
ip->prio = keyword->default_prio;
\r
ip->keyword = keyword;
\r
keyword->ip_count++;
\r
ip->prio = keyword->default_prio;
\r
This page took
0.152072 seconds
and
4
git commands to generate.