51d.c HTX patch

2020-01-20 Thread Ben Shillito
Hi Willy,

I have attached a patch which fixes the bug raised in this GitHub issue: 
https://github.com/haproxy/haproxy/issues/450

The issue was reported in 2.0.12, so should be backported to 2.0 and 2.1 
branches.

If there is anything extra you need from me, do let me know as we'd like to get 
the fix out there as soon as we can.

Thanks,

Ben Shillito
Developer
[51Degrees]<https://51degrees.com/>
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com?subject=Your%20Email>
[https://51degrees.com/portals/0/images/twitterbird.png] 
@51Degrees<http://twitter.com/51Degreesmobi>
[https://51degrees.com/portals/0/images/linkedinicon.png] 
51Degrees<https://www.linkedin.com/company/2171864>
[Find out More]<https://51degrees.com/emailsig.aspx>

This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


0001-BUG-MINOR-Fixed-bug-in-51d.c-when-HTX-is-enabled.patch
Description:  0001-BUG-MINOR-Fixed-bug-in-51d.c-when-HTX-is-enabled.patch


RE: Possible optimization to 51d in multithread

2019-10-24 Thread Ben Shillito
Hi,

This is intentional, as the calling method would return early if the htx is 
null (this is assuming that smp_prefetch_htx will not return a different result 
the second time?):
   htx = smp_prefetch_htx(smp, chn, 1);
   if (!htx)
  return 0;
Rather than doing the null check again, I will instead change the method to 
take the htx which has already been checked. This way coverity should not have 
an issue with it, we avoid having an extra null check, and we remove the second 
call to smp_prefetch_htx which was unnecessary.

I will submit this as a separate patch to the other change.

Thanks,

Ben Shillito
Developer
[51Degrees]<https://51degrees.com/>
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com?subject=Your%20Email>
[https://51degrees.com/portals/0/images/twitterbird.png] 
@51Degrees<http://twitter.com/51Degreesmobi>
[https://51degrees.com/portals/0/images/linkedinicon.png] 
51Degrees<https://www.linkedin.com/company/2171864>
[Find out More]<https://51degrees.com/emailsig.aspx>

From: Илья Шипицин [mailto:chipits...@gmail.com]
Sent: 24 October 2019 08:04
To: Ben Shillito 
Cc: Willy Tarreau ; HAProxy 
Subject: Re: Possible optimization to 51d in multithread

Hello, Ben.

since you are going to touch 51d code, can you please review the following 
coverity finding (it thinks there might be null pointer dereference) ?

239// No need to null check as this has already been carried out in the
240// calling method

2. returned_null: smp_prefetch_htx returns NULL (checked 35 out of 36 times). 
[show 
details<https://scan6.coverity.com/eventId=28590715-1=28590715-0=94351345=%2Fsrc%2Fhttp_fetch.c=172=294>]

3. var_assigned: Assigning: htx = NULL return value from smp_prefetch_htx.
241htx = smp_prefetch_htx(smp, chn, 1);
242

4. Condition i < global_51degrees.header_count, taking true branch.
243for (i = 0; i < global_51degrees.header_count; i++) {
244name.ptr = (global_51degrees.header_names + i)->area;
245name.len = (global_51degrees.header_names + i)->data;
246ctx.blk = NULL;
247

CID 1403847 (#1 of 1): Dereference null return value (NULL_RETURNS)5. 
dereference: Dereferencing a pointer that might be NULL htx when calling 
http_find_header. [show 
details<https://scan6.coverity.com/eventId=28590715-16=28590715-1=94351414=%2Fsrc%2Fhttp_htx.c=54=129>]
248if (http_find_header(htx, name, , 1)) {
249
ws->importantHeaders[ws->importantHeadersCount].header = 
ws->dataSet->httpHeaders + i;
250
ws->importantHeaders[ws->importantHeadersCount].headerValue = ctx.value.ptr;
251
ws->importantHeaders[ws->importantHeadersCount].headerValueLength = 
ctx.value.len;
252ws->importantHeadersCount++;
253    }
254}
255}
256#endif

ср, 23 окт. 2019 г. в 14:40, Ben Shillito 
mailto:b...@51degrees.com>>:
Hi Willy,

Thanks for letting me know. I will get the work for this scheduled in and get a 
patch over to you.

I agree it looks like a fairly small change for what I'm sure is a considerable 
performance increase for large systems.

Good to see this level of attention to detail when it comes to the performance 
of HAProxy.

Thanks,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com>
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu<mailto:w...@1wt.eu>]
Sent: 23 October 2019 07:04
To: Ben Shillito mailto:b...@51degrees.com>>
Cc: HAProxy mailto:haproxy@formilux.org>>
Subject: Possible optimization to 51d in multithread

Hi Ben,

after Brian reported the thread performance regression affecting the pattern 
matchings in haproxy when relying on the LRU cache, I had a look at other users 
of the LRU cache and found that 51d.c is using it with a lock as well and may 
also suffer from a lack of linearity with threads.

You may want to have a look at this patch I just committed to make the pattern 
LRU cache per thread :

  403bfbb130 ("BUG/MEDIUM: pattern: make the pattern LRU cache thread-local and 
lockless")

It's quite straightforward, and if you want to do the same on 51d.c, you just 
have to make your lru_tree pointer thread_local and allocate it for each thread 
in a small callback registered to be called after threads are initialized. Same 
for the call to lru64_destroy(). Then you can remove the lru lock and gain a 
lot of scalability.

I'll let you have a look because I'd rather not break somehing non- obvious in 
your code and also because you know better than me how to benchmark the changes 
using the real lib and database, but if you need some help, just let me know.

Given that it's quite small and simple a change, I'm fine with merging such a 
patch for 2.1 even a bit late (but only t

RE: [PATCH] wurfl device detection build fixes and dummy library

2019-06-13 Thread Ben Shillito
Hi Willy,

Great, thanks.

Yeah that makes total sense. Don't want warnings that can't be solved.

Regards,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 13 June 2019 17:06
To: Ben Shillito 
Cc:  ??? ; Christopher Faulet 
; HAProxy 
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library

On Thu, Jun 13, 2019 at 03:57:04PM +, Ben Shillito wrote:
> Also, after thinking earlier about making it more obvious that it is a
> dummy library, I have attached a patch which adds "(dummy library)" to
> the output of REGISTER_BUILD_OPTS macro.

Ah perfect, I also wanted to do it but considered it of lower importance than 
the remaining stuff so it could be postponed. I've merged it now, thank you.

> I thought about pushing a warning when the dummy library is used just
> to be super obvious. Don't know what you think of that?

No it's not a good idea. We're trying to make sure that *any* single warning 
must be addressable by the end user, otherwise people get used to seeing them 
and to ignore them.

If people build with the dummy lib and complain, they'll send their haproxy 
-vv, you see "dummy" there it becomes "you don't need to run with this, please 
prove the problem still happens without", end of the story.

I asked about these libs for convenience for *developers* not for users.
But if it causes warnings in all our builds, it will end up being disabled 
which is counter productive.

Cheers,
Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.



RE: [PATCH] wurfl device detection build fixes and dummy library

2019-06-13 Thread Ben Shillito
Same here. I can't see anything related to 51Degrees in there.

I will leave this for now, but let me know if either of you notice anything I 
need to look into.

Also, after thinking earlier about making it more obvious that it is a dummy 
library, I have attached a patch which adds "(dummy library)" to the output of 
REGISTER_BUILD_OPTS macro.

I thought about pushing a warning when the dummy library is used just to be 
super obvious. Don't know what you think of that?

Thanks,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 13 June 2019 16:30
To: Ben Shillito 
Cc:  ??? ; Christopher Faulet 
; HAProxy 
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library

On Thu, Jun 13, 2019 at 03:21:36PM +, Ben Shillito wrote:
> Thanks both,
>
> Ilya, I will take a look at that now.

I suspect it's totally unrelated, the failure was on this reg test and may be 
just a race :

## Test case: reg-tests/checks/4be_1srv_health_checks.vtc ## ## test 
results in: "/tmp/haregtests-2019-06-13_15-05-08.R3rhNr/vtc.8210.558cb932"
 h11.5 CLI expect failed ~ "# be_id be_name srv_id srv_name srv_addr 
srv_op_state srv_admin_state srv_uweight srv_iweight srv_time_since_last_change 
srv_check_status srv_check_result srv_check_health srv_check_state 
srv_agent_state bk_f_forced_id srv_f_forced_id srv_fqdn srv_port srvrecord

The last push seems to be running fine for now.

Willy

This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


0001-BUILD-MINOR-51d-Updated-build-registration-output-to.patch
Description:  0001-BUILD-MINOR-51d-Updated-build-registration-output-to.patch


RE: [PATCH] wurfl device detection build fixes and dummy library

2019-06-13 Thread Ben Shillito
Thanks both,

Ilya, I will take a look at that now.

Ben Shillito
Developer
[51Degrees]<https://51degrees.com/>
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com?subject=Your%20Email>
[https://51degrees.com/portals/0/images/twitterbird.png] 
@51Degrees<http://twitter.com/51Degreesmobi>
[https://51degrees.com/portals/0/images/linkedinicon.png] 
51Degrees<https://www.linkedin.com/company/2171864>
[Find out More]<https://51degrees.com/emailsig.aspx>

From: Илья Шипицин [mailto:chipits...@gmail.com]
Sent: 13 June 2019 16:19
To: Willy Tarreau 
Cc: Ben Shillito ; Christopher Faulet 
; HAProxy 
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library

Ben,

I enabled "trie" on one build configuration and ... it failed

https://travis-ci.com/haproxy/haproxy/jobs/207816969

it never failed before. can you have a look ?
(also, it did NOT fail in my own fork)

чт, 13 июн. 2019 г. в 20:03, Willy Tarreau mailto:w...@1wt.eu>>:
On Thu, Jun 13, 2019 at 08:01:14PM +0500,  ??? wrote:
> please find "travis-ci + 51degree" patch attached.

applied, thanks Ilya.
willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


RE: [PATCH] wurfl device detection build fixes and dummy library

2019-06-13 Thread Ben Shillito
Hi Willy,

Yes, I agree the paths in the dummy library should match that of the actual 
library. And yes, that patch is good with me.

Thanks,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 13 June 2019 14:59
To: Ben Shillito 
Cc:  ??? ; Christopher Faulet 
; HAProxy 
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library

Ben,

what do you think of this one ?

Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.



RE: [PATCH] wurfl device detection build fixes and dummy library

2019-06-13 Thread Ben Shillito
Thanks for the link, that’s useful. Looks like the path to the source is the 
issue.

It should be “51DEGREES_SRC=contrib/51d/pattern” rather than 
“51DEGREES_SRC=contrib/51d/src/pattern”.

On your performance point, the Pattern algorithm offers the match metrics and 
is a bit more thorough in looking for “closest” matches if the User-Agent is 
unknown. It is more than fast enough for the majority of users, however use 
cases like ad tech can receive billions of requests per day. For that reason, 
it is only the high volume users which choose to forgo the extra analysis that 
Pattern offers in order to make use of the efficiency of Trie.

Regards,

Ben Shillito
Developer
[51Degrees]<https://51degrees.com/>
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com?subject=Your%20Email>
[https://51degrees.com/portals/0/images/twitterbird.png] 
@51Degrees<http://twitter.com/51Degreesmobi>
[https://51degrees.com/portals/0/images/linkedinicon.png] 
51Degrees<https://www.linkedin.com/company/2171864>
[Find out More]<https://51degrees.com/emailsig.aspx>

From: Илья Шипицин [mailto:chipits...@gmail.com]
Sent: 13 June 2019 13:27
To: Ben Shillito 
Cc: Willy Tarreau ; Christopher Faulet ; 
HAProxy 
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library



чт, 13 июн. 2019 г. в 17:09, Ben Shillito 
mailto:b...@51degrees.com>>:
In Travis the contrib version would be fine. But if you are testing something 
which will later be deployed to production, I would suggest using cloning the 
actual GitHub repo instead to be safe.


this is how I enable it on travis-ci

https://github.com/chipitsine/haproxy/blob/master/.travis.yml#L8

(you may see USE_51DEGREES=1 51DEGREES_SRC=contrib/51d/src/pattern )

here's build

https://travis-ci.com/chipitsine/haproxy/jobs/207722666#L306-L310




In answer to your other question, yes, Pattern and Trie in HAProxy are mutually 
exclusive. Which one you choose depends on your needs. Trie provides the 
maximum performance, and Pattern takes slightly more time in order to give you 
better metrics indicating the quality of match. Unless you are handling upwards 
of a million requests per second, Pattern will be enough.

For more details on the differences between Pattern and Trie you can take a 
look at our “how device detection works” page here: 
https://51degrees.com/support/documentation/how-device-detection-works

ok, we'll test both

not clear, why one might need "maximum performance" algorithm and ... "not so 
fast another algorithm"
from my point of view, I would use the fastest algorithm all the time



And for the performance figures you can expect to see from both in HAProxy, see 
our benchmarks page here: 
https://51degrees.com/Support/Documentation/APIs/C-V32/Benchmarks

If you need any more information, or help setting up, do let me know.

Regards,

Ben Shillito
Developer
[Image removed by sender. 51Degrees]<https://51degrees.com/>
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com?subject=Your%20Email>
[Image removed by sender.] @51Degrees<http://twitter.com/51Degreesmobi>
[Image removed by sender.] 51Degrees<https://www.linkedin.com/company/2171864>
[Image removed by sender. Find out More]<https://51degrees.com/emailsig.aspx>

From: Илья Шипицин [mailto:chipits...@gmail.com<mailto:chipits...@gmail.com>]
Sent: 13 June 2019 11:31
To: Ben Shillito mailto:b...@51degrees.com>>
Cc: Willy Tarreau mailto:w...@1wt.eu>>; Christopher Faulet 
mailto:cfau...@haproxy.com>>; HAProxy 
mailto:haproxy@formilux.org>>
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library



чт, 13 июн. 2019 г. в 15:25, Ben Shillito 
mailto:b...@51degrees.com>>:
Hi,

The docs are correct. However, the 51Degrees source in the “contrib” directory 
should only be used for testing changes to the HAProxy source. The code 
contained in here does not contain any 51Degrees functionality, just method 
stubs to enable compilation and testing.

it's what I meant actually.
I added "USE_51DEGREES=1 51DEGREES_SRC=contrib/51d/src/pattern" to travis-ci 
job in order to see whether it will build or not.

or do I need to clone github repo anyway ?


another question is "what should be added to travis-ci?" I see "src/pattern" 
and "src/trie" alternatives. Are they mutually exclusiive ? So, should we test 
either of them ?


You should use the 51Degrees source located at 
https://github.com/51degrees/device-detection.git. Then point 51DEGREES_SRC to 
either device-detection/src/pattern or device-detection/src/trie.

Perhaps if the documentation is not clear enough we should modify it, or even 
add a warning to the compilation.

Let me know if this gets you up and running.

Regards,

Ben Shillito
Developer
[Image removed by sender. 51Degrees]<https://51degrees.com/>
O: +44 1183 287152
E: b...@51degree

RE: [PATCH] wurfl device detection build fixes and dummy library

2019-06-13 Thread Ben Shillito
In Travis the contrib version would be fine. But if you are testing something 
which will later be deployed to production, I would suggest using cloning the 
actual GitHub repo instead to be safe.

In answer to your other question, yes, Pattern and Trie in HAProxy are mutually 
exclusive. Which one you choose depends on your needs. Trie provides the 
maximum performance, and Pattern takes slightly more time in order to give you 
better metrics indicating the quality of match. Unless you are handling upwards 
of a million requests per second, Pattern will be enough.

For more details on the differences between Pattern and Trie you can take a 
look at our “how device detection works” page here: 
https://51degrees.com/support/documentation/how-device-detection-works

And for the performance figures you can expect to see from both in HAProxy, see 
our benchmarks page here: 
https://51degrees.com/Support/Documentation/APIs/C-V32/Benchmarks

If you need any more information, or help setting up, do let me know.

Regards,

Ben Shillito
Developer
[51Degrees]<https://51degrees.com/>
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com?subject=Your%20Email>
[https://51degrees.com/portals/0/images/twitterbird.png] 
@51Degrees<http://twitter.com/51Degreesmobi>
[https://51degrees.com/portals/0/images/linkedinicon.png] 
51Degrees<https://www.linkedin.com/company/2171864>
[Find out More]<https://51degrees.com/emailsig.aspx>

From: Илья Шипицин [mailto:chipits...@gmail.com]
Sent: 13 June 2019 11:31
To: Ben Shillito 
Cc: Willy Tarreau ; Christopher Faulet ; 
HAProxy 
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library



чт, 13 июн. 2019 г. в 15:25, Ben Shillito 
mailto:b...@51degrees.com>>:
Hi,

The docs are correct. However, the 51Degrees source in the “contrib” directory 
should only be used for testing changes to the HAProxy source. The code 
contained in here does not contain any 51Degrees functionality, just method 
stubs to enable compilation and testing.

it's what I meant actually.
I added "USE_51DEGREES=1 51DEGREES_SRC=contrib/51d/src/pattern" to travis-ci 
job in order to see whether it will build or not.

or do I need to clone github repo anyway ?


another question is "what should be added to travis-ci?" I see "src/pattern" 
and "src/trie" alternatives. Are they mutually exclusiive ? So, should we test 
either of them ?


You should use the 51Degrees source located at 
https://github.com/51degrees/device-detection.git. Then point 51DEGREES_SRC to 
either device-detection/src/pattern or device-detection/src/trie.

Perhaps if the documentation is not clear enough we should modify it, or even 
add a warning to the compilation.

Let me know if this gets you up and running.

Regards,

Ben Shillito
Developer
[Image removed by sender. 51Degrees]<https://51degrees.com/>
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com?subject=Your%20Email>
[Image removed by sender.] @51Degrees<http://twitter.com/51Degreesmobi>
[Image removed by sender.] 51Degrees<https://www.linkedin.com/company/2171864>
[Image removed by sender. Find out More]<https://51degrees.com/emailsig.aspx>

From: Илья Шипицин [mailto:chipits...@gmail.com<mailto:chipits...@gmail.com>]
Sent: 13 June 2019 11:07
To: Ben Shillito mailto:b...@51degrees.com>>
Cc: Willy Tarreau mailto:w...@1wt.eu>>; Christopher Faulet 
mailto:cfau...@haproxy.com>>; HAProxy 
mailto:haproxy@formilux.org>>
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library

Ben,

what is the proper way of building 51degree ?

I added "USE_51DEGREES=1 51DEGREES_SRC=contrib/51d/src/pattern" (as I seen in 
documentation)


gcc -Iinclude -Iebtree -Wall -Wextra  -O2  -fno-strict-aliasing 
-Wdeclaration-after-statement -fwrapv   -Wno-unused-label -Wno-sign-compare 
-Wno-unused-parameter -Wno-old-style-declaration -Wno-ignored-qualifiers 
-Wno-clobbered -Wno-missing-field-initializers-Wtype-limits   
-DUSE_EPOLL-DUSE_NETFILTER -DUSE_PCRE -DUSE_PCRE_JIT   -DUSE_POLL  
-DUSE_THREAD -DUSE_TPROXY -DUSE_LINUX_TPROXY -DUSE_LINUX_SPLICE 
-DUSE_LIBCRYPT -DUSE_CRYPT_H  -DUSE_GETADDRINFO -DUSE_OPENSSL -DUSE_LUA 
-DUSE_FUTEX -DUSE_ACCEPT4  -DUSE_ZLIB  -DUSE_CPU_AFFINITY -DUSE_TFO  -DUSE_DL 
-DUSE_RT -DUSE_DEVICEATLAS -DUSE_51DEGREES -DUSE_WURFL -DUSE_SYSTEMD  
-DUSE_PRCTL -DUSE_THREAD_DUMP   -I/home/travis/opt/include 
-I/usr/include/lua5.3 -I/usr/include/lua5.3 -Icontrib/deviceatlas 
-Icontrib/src/trie -Icontrib/wurfl -DUSE_PCRE -I/usr/include  
-DCONFIG_HAPROXY_VERSION=\"2.0-dev7\" -DCONFIG_HAPROXY_DATE=\"2019/06/11\" -c 
-o src/da.o src/da.c

make: *** No rule to make target 'contrib/src/trie/../cityhash/city.o', needed 
by 'haproxy'.  Stop.

make: *** Waiting for unfinished jobs

is documentation correct ? or I should use some different way to build

ср, 1

RE: [PATCH] wurfl device detection build fixes and dummy library

2019-06-13 Thread Ben Shillito
Hi,

The docs are correct. However, the 51Degrees source in the “contrib” directory 
should only be used for testing changes to the HAProxy source. The code 
contained in here does not contain any 51Degrees functionality, just method 
stubs to enable compilation and testing.

You should use the 51Degrees source located at 
https://github.com/51degrees/device-detection.git. Then point 51DEGREES_SRC to 
either device-detection/src/pattern or device-detection/src/trie.

Perhaps if the documentation is not clear enough we should modify it, or even 
add a warning to the compilation.

Let me know if this gets you up and running.

Regards,

Ben Shillito
Developer
[51Degrees]<https://51degrees.com/>
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com?subject=Your%20Email>
[https://51degrees.com/portals/0/images/twitterbird.png] 
@51Degrees<http://twitter.com/51Degreesmobi>
[https://51degrees.com/portals/0/images/linkedinicon.png] 
51Degrees<https://www.linkedin.com/company/2171864>
[Find out More]<https://51degrees.com/emailsig.aspx>

From: Илья Шипицин [mailto:chipits...@gmail.com]
Sent: 13 June 2019 11:07
To: Ben Shillito 
Cc: Willy Tarreau ; Christopher Faulet ; 
HAProxy 
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library

Ben,

what is the proper way of building 51degree ?

I added "USE_51DEGREES=1 51DEGREES_SRC=contrib/51d/src/pattern" (as I seen in 
documentation)


gcc -Iinclude -Iebtree -Wall -Wextra  -O2  -fno-strict-aliasing 
-Wdeclaration-after-statement -fwrapv   -Wno-unused-label -Wno-sign-compare 
-Wno-unused-parameter -Wno-old-style-declaration -Wno-ignored-qualifiers 
-Wno-clobbered -Wno-missing-field-initializers-Wtype-limits   
-DUSE_EPOLL-DUSE_NETFILTER -DUSE_PCRE -DUSE_PCRE_JIT   -DUSE_POLL  
-DUSE_THREAD -DUSE_TPROXY -DUSE_LINUX_TPROXY -DUSE_LINUX_SPLICE 
-DUSE_LIBCRYPT -DUSE_CRYPT_H  -DUSE_GETADDRINFO -DUSE_OPENSSL -DUSE_LUA 
-DUSE_FUTEX -DUSE_ACCEPT4  -DUSE_ZLIB  -DUSE_CPU_AFFINITY -DUSE_TFO  -DUSE_DL 
-DUSE_RT -DUSE_DEVICEATLAS -DUSE_51DEGREES -DUSE_WURFL -DUSE_SYSTEMD  
-DUSE_PRCTL -DUSE_THREAD_DUMP   -I/home/travis/opt/include 
-I/usr/include/lua5.3 -I/usr/include/lua5.3 -Icontrib/deviceatlas 
-Icontrib/src/trie -Icontrib/wurfl -DUSE_PCRE -I/usr/include  
-DCONFIG_HAPROXY_VERSION=\"2.0-dev7\" -DCONFIG_HAPROXY_DATE=\"2019/06/11\" -c 
-o src/da.o src/da.c

make: *** No rule to make target 'contrib/src/trie/../cityhash/city.o', needed 
by 'haproxy'.  Stop.

make: *** Waiting for unfinished jobs


is documentation correct ? or I should use some different way to build

ср, 12 июн. 2019 г. в 22:01, Ben Shillito 
mailto:b...@51degrees.com>>:
Hi Willy,

Great, thanks for those changes, and good spot.

I agree that this is a significant step forward, and having the entire codebase 
testable in CI will certainly make everything that bit smoother.

Thanks,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com>
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu<mailto:w...@1wt.eu>]
Sent: 12 June 2019 17:07
To: Ben Shillito mailto:b...@51degrees.com>>
Cc: Christopher Faulet mailto:cfau...@haproxy.com>>; 
HAProxy mailto:haproxy@formilux.org>>
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library

On Wed, Jun 12, 2019 at 02:49:37PM +, Ben Shillito wrote:
> While I was working on the HTX changes, I thought it was probably a
> good time to also implement the dummy library as I had my brain in 'HAProxy 
> mode'.

Ah, excellent, thank you :

  $./haproxy -vv|grep -i 51d
  Feature list : +EPOLL -KQUEUE -MY_EPOLL -MY_SPLICE +NETFILTER +PCRE -PCRE_JIT 
-PCRE2 -PCRE2_JIT +POLL -PRIVATE_CACHE +THREAD -PTHREAD_PSHARED -REGPARM 
-STATIC_PCRE -STATIC_PCRE2 +TPROXY +LINUX_TPROXY +LINUX_SPLICE +LIBCRYPT 
+CRYPT_H -VSYSCALL -GETADDRINFO +OPENSSL +LUA +FUTEX +ACCEPT4 -MY_ACCEPT4 -ZLIB 
+SLZ +CPU_AFFINITY -TFO +NS +DL +RT -DEVICEATLAS -51DEGREES -WURFL -SYSTEMD 
-OBSOLETE_LINKER +PRCTL +THREAD_DUMP -EVPORTS
  Built with 51Degrees support.

:-)

Ilya will likely be happy to see that we can now build 100% of our codebase in 
the CI, this is a significant step forward!

I performed very minor changes to your patches, for the first one I marked it 
"BUG/MINOR" so that we backport it to 1.9 (since it's still broken there) and 
for the second I fixed the doc where you accidently dropped "51d" after 
"contrib/" in the build command :-)

Thanks a lot for your responsiveness,
Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com<mailto:i...@5

RE: [PATCH] wurfl device detection build fixes and dummy library

2019-06-12 Thread Ben Shillito
Hi Willy,

Great, thanks for those changes, and good spot.

I agree that this is a significant step forward, and having the entire codebase 
testable in CI will certainly make everything that bit smoother.

Thanks,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 12 June 2019 17:07
To: Ben Shillito 
Cc: Christopher Faulet ; HAProxy 
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library

On Wed, Jun 12, 2019 at 02:49:37PM +, Ben Shillito wrote:
> While I was working on the HTX changes, I thought it was probably a
> good time to also implement the dummy library as I had my brain in 'HAProxy 
> mode'.

Ah, excellent, thank you :

  $./haproxy -vv|grep -i 51d
  Feature list : +EPOLL -KQUEUE -MY_EPOLL -MY_SPLICE +NETFILTER +PCRE -PCRE_JIT 
-PCRE2 -PCRE2_JIT +POLL -PRIVATE_CACHE +THREAD -PTHREAD_PSHARED -REGPARM 
-STATIC_PCRE -STATIC_PCRE2 +TPROXY +LINUX_TPROXY +LINUX_SPLICE +LIBCRYPT 
+CRYPT_H -VSYSCALL -GETADDRINFO +OPENSSL +LUA +FUTEX +ACCEPT4 -MY_ACCEPT4 -ZLIB 
+SLZ +CPU_AFFINITY -TFO +NS +DL +RT -DEVICEATLAS -51DEGREES -WURFL -SYSTEMD 
-OBSOLETE_LINKER +PRCTL +THREAD_DUMP -EVPORTS
  Built with 51Degrees support.

:-)

Ilya will likely be happy to see that we can now build 100% of our codebase in 
the CI, this is a significant step forward!

I performed very minor changes to your patches, for the first one I marked it 
"BUG/MINOR" so that we backport it to 1.9 (since it's still broken there) and 
for the second I fixed the doc where you accidently dropped "51d" after 
"contrib/" in the build command :-)

Thanks a lot for your responsiveness,
Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.



RE: [PATCH] wurfl device detection build fixes and dummy library

2019-06-12 Thread Ben Shillito
Hi Willy,

No worries, that's fine.

While I was working on the HTX changes, I thought it was probably a good time 
to also implement the dummy library as I had my brain in 'HAProxy mode'.

Both patches are attached ready to be merged.

If there is anything missing, let me know and can I'll try to make sure you 
have everything you need for a weekend release.

Thanks,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 12 June 2019 10:12
To: Ben Shillito 
Cc: Christopher Faulet ; HAProxy 
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library

On Wed, Jun 12, 2019 at 08:52:53AM +, Ben Shillito wrote:
> Hi Willy,
>
> This unfortunately fell down our list of priorities in the last few weeks.

Oh I certainly can understand, and I'm sorry I forgot about it so I didn't ping 
you earlier.

> However, as this is a bit more urgent now with your weekend release, I
> will get the change for HTX awareness to you either today or tomorrow
> if that is ok with you?

OK that's perfect, thank you! It will be less work on my side to merge your fix 
than to write the verification code to refuse to start!

Thanks,
Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


0001-FEAT-51d-htx-The-_51d_fetch-method-and-the-methods-i.patch
Description:  0001-FEAT-51d-htx-The-_51d_fetch-method-and-the-methods-i.patch


0002-MINOR-51d-Added-dummy-libraries-for-the-51Degrees-mo.patch
Description:  0002-MINOR-51d-Added-dummy-libraries-for-the-51Degrees-mo.patch


RE: [PATCH] wurfl device detection build fixes and dummy library

2019-06-12 Thread Ben Shillito
Hi Willy,

This unfortunately fell down our list of priorities in the last few weeks. 
However, as this is a bit more urgent now with your weekend release, I will get 
the change for HTX awareness to you either today or tomorrow if that is ok with 
you?

Thanks,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees
-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 12 June 2019 09:14
To: Ben Shillito 
Cc: Christopher Faulet ; HAProxy 
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library

Hi Ben,

On Wed, Apr 24, 2019 at 06:20:16PM +0200, Christopher Faulet wrote:
> Le 24/04/2019 à 17:56, Ben Shillito a écrit :
> > Hi Willy,
> >
> > Thanks for the update. We will take a look and get a patch over to you.
> >
>
> Hi,
>
> Ben, the function _51d_fetch() is not HTX aware. Take a look at other
> HTTP sample fetches in src/http_fetch.c.

I'm just realizing that we never got your patch for this. Do you have a patch 
handy or should we currently write a quick one to prevent one from starting 
with both 51d and HTX enabled ? HTX is on by default in
2.0 and the final release is expected around this week-end...

Please just let me know, at least I don't want users to meet random crashes 
when using this code.

Thanks,
Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.



RE: [PATCH] wurfl device detection build fixes and dummy library

2019-04-24 Thread Ben Shillito
Hi Willy,

Thanks for the update. We will take a look and get a patch over to you.

Thanks,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees
-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 23 April 2019 10:11
To: Paul Stephen Borile 
Cc: HAProxy 
Subject: Re: [PATCH] wurfl device detection build fixes and dummy library

Hi Paul,

On Fri, Apr 19, 2019 at 06:45:22PM +0200, Paul Stephen Borile wrote:
> Hi Willy,
>
> fine for me, thanks for the adjustments and no problem backporting
> this to 1.9.
> I also confirm that the contact email address is working correctly.

Fine thank you. I could finish the polishing (add USE_WURFL to the list of 
known and reported build options in the makefile) and I've reintegrated the 
code now.

You probably don't see the value in having the dummy library, but for 
developers it's invaluable. I have now updated my build script to build with 
USE_WURFL=1 by default so that I'll now see if anything causes warnings or 
errors there if we touch structures that are used by your code.

It would be really awesome if Device Atlas and 51Degrees could do the same, as 
the build coverage becomes much better with very little effort for everyone. 
David, Ben, if you read this, please have a look at contrib/wurfl to get an 
idea of what is sufficient to have your code always built by anyone. Patches 
welcome :-)

Thanks,
Willy

This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.



RE: Does anyone *really* use 51d or WURFL ?

2019-02-05 Thread Ben Shillito
Hi Willy,

I have attached two patches.

One is the threading change which maps the threading flag in 51Degrees to the 
one in HAProxy. There are also some changes in the 51d.c module code to make 
everything thread safe.

The other is a minor bug in the multiple header matching when using the Hash 
Trie API.

Thanks,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 21 January 2019 16:48
To: Ben Shillito 
Cc: haproxy@formilux.org
Subject: Re: Does anyone *really* use 51d or WURFL ?

On Mon, Jan 21, 2019 at 04:37:32PM +, Ben Shillito wrote:
> Hi Willy,
>
> Ah yes, thanks, I missed the S first time reading it.
>
> There are actually a couple of things I'd like to check over a bit
> more thoroughly like the caching used in 51d.c, so it will probably be
> more like tomorrow.

No problem. We'll probably issue another 1.9 on wednesday. If you can have 
something by then it could be backported into the next 1.9, otherwise it can 
still wait a bit. It's been waiting for more than one year, we're not in a 
hurry anymore :-)

Thanks,
Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


0001-BUG-51d-In-Hash-Trie-multi-header-matching-was-affec.patch
Description:  0001-BUG-51d-In-Hash-Trie-multi-header-matching-was-affec.patch


0002-FEAT-51d-Enabled-multi-threaded-operation-in-the-51D.patch
Description:  0002-FEAT-51d-Enabled-multi-threaded-operation-in-the-51D.patch


RE: Does anyone *really* use 51d or WURFL ?

2019-01-21 Thread Ben Shillito
Hi Willy,

Ah yes, thanks, I missed the S first time reading it.

There are actually a couple of things I'd like to check over a bit more 
thoroughly like the caching used in 51d.c, so it will probably be more like 
tomorrow.

Thanks,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 21 January 2019 16:06
To: Ben Shillito 
Cc: haproxy@formilux.org
Subject: Re: Does anyone *really* use 51d or WURFL ?

On Mon, Jan 21, 2019 at 04:00:13PM +, Ben Shillito wrote:
> Hi Willy,
>
> I agree, setting the flag from the HAProxy USE_THREADS is probably the
> neatest solution.

Yep. Be careful, it's "USE_THREAD" (without trailing S).

> I will get a patch over to you later on today.

Fine, no emergency though. I prefer that you take the time to verify that it 
works before submitting :-)

Thanks,
Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.



RE: Does anyone *really* use 51d or WURFL ?

2019-01-21 Thread Ben Shillito
Hi Willy,

I agree, setting the flag from the HAProxy USE_THREADS is probably the neatest 
solution.

I will get a patch over to you later on today.

Thanks,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 21 January 2019 15:44
To: Ben Shillito 
Cc: haproxy@formilux.org
Subject: Re: Does anyone *really* use 51d or WURFL ?

Hi Ben,

First, thanks for your quick response.

On Mon, Jan 21, 2019 at 03:05:08PM +, Ben Shillito wrote:
> Hi Willy,
>
> I'd like to point out that the 51Degrees API does in fact support
> multi-threaded operation by default. The HAProxy makefile however,
> explicitly uses the FIFTYONEDEGREES_NO_THREADING compile option to
> disable this when building 
> (https://github.com/haproxy/haproxy/blob/master/Makefile#L740).

OK!

> Multi-threaded operation in the API is tested under maximum load
> before every release as can be seen here:
> https://github.com/51Degrees/Device-Detection/blob/master/VisualStudio
> /UnitTests/Performance/Base.cs#L89
>
> Mutli-threaded operation is also stress tested in conjunction with
> many threads detecting User-Agents, and another reloading the data
> file repeatedly as seen here:
> https://github.com/51Degrees/Device-Detection/blob/master/examples/Rel
> oadFromFile.c

Oh, rest assured that I have no doubt about the API's support itself, what I 
mean is that 51d.c in haproxy is not thread-compatible right now (at least due 
to the makefile entry above and to the test in 51d.c) while haproxy is built 
with threading on by default, and I find it suspicious that nobody noticed 
after more than one year. But it's very possible that for now nobody is 
interested in deploying it with threads.

At the moment I'm concerned by the fact that in the whole project there remains 
exactly two files which are incompatible with thread support and as you can 
imagine it's always a pain to have to deal with exceptions like this.

> If multi-threaded support is an issue, then it is a trivial change to
> the makefile to align the HAProxy build to the 51Degrees default, and
> give the option to disable threading for those who require that.

Excellent! What I can suggest then is to set this define only when USE_THREAD 
is not set. This way you can make sure that 51d.c and the rest of haproxy are 
always aligned regarding thread support.

Feel free to send a patch, I'll happily merge it and even backport it so that 
we don't have to worry anymore about the compatbility between threads and 
various options.

Thanks!
Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.



RE: Does anyone *really* use 51d or WURFL ?

2019-01-21 Thread Ben Shillito
Hi Willy,

I'd like to point out that the 51Degrees API does in fact support 
multi-threaded operation by default. The HAProxy makefile however, explicitly 
uses the FIFTYONEDEGREES_NO_THREADING compile option to disable this when 
building (https://github.com/haproxy/haproxy/blob/master/Makefile#L740).

Multi-threaded operation in the API is tested under maximum load before every 
release as can be seen here: 
https://github.com/51Degrees/Device-Detection/blob/master/VisualStudio/UnitTests/Performance/Base.cs#L89

Mutli-threaded operation is also stress tested in conjunction with many threads 
detecting User-Agents, and another reloading the data file repeatedly as seen 
here: 
https://github.com/51Degrees/Device-Detection/blob/master/examples/ReloadFromFile.c

If multi-threaded support is an issue, then it is a trivial change to the 
makefile to align the HAProxy build to the 51Degrees default, and give the 
option to disable threading for those who require that.

Regards,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 21 January 2019 14:36
To: haproxy@formilux.org
Subject: Does anyone *really* use 51d or WURFL ?

Hi all,

recently it was figured that the buffer API changes caused some breakage to 
da.c and 51d.c (both fixed since), I don't know if wurfl builds at all by the 
way since the last update to the module is its introduction more than 2 years 
ago. But more importantly I'm realizing that neither 51d nor wurfl will start 
with threads enabled. This has been the case for about
15 months now, while we've had threads enabled on all relevant operating 
systems.

Thus it leads me to the (possibly wrong) conclusion that absolutely nobody ever 
uses these options. Am I wrong ? I'm asking because each time we perform some 
API changes it's always a pain to go through these which don't build out of the 
box without external dependencies, and I suspect we're simply wasting our time 
and we should get rid of them if nobody uses them (or at the very least move 
them to contrib/).

But if anyone is using them and disables threads for this, then it's fine, but 
in this case it would be nice if these two would check the thread safety of 
their code so that the thread restriction can be removed for the benefit of 
their users.

Please advise.

Thanks,
Willy

This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.



RE: [PATCH] Buffer API changes for 51d.c

2019-01-16 Thread Ben Shillito
Hi Willy,

Great, thanks for the quick turnaround.

Regards,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 16 January 2019 16:27
To: Ben Shillito 
Cc: haproxy@formilux.org
Subject: Re: [PATCH] Buffer API changes for 51d.c

Hi Ben,

On Wed, Jan 16, 2019 at 11:43:03AM +, Ben Shillito wrote:
> Hi Willy,
>
> It appears that 51.d still uses some elements of the the now deprecated 
> buffer API, so I have attached a patch which updates the usage to the new 
> buffer API.
>
> This can also be backported to 1.9 where the new API was introduced.

Great, now merged, and still in time for 1.9.2.

Thank you!
Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.



[PATCH] Buffer API changes for 51d.c

2019-01-16 Thread Ben Shillito
Hi Willy,

It appears that 51.d still uses some elements of the the now deprecated buffer 
API, so I have attached a patch which updates the usage to the new buffer API.

This can also be backported to 1.9 where the new API was introduced.

Thanks,

Ben Shillito
Developer
[51Degrees]<https://51degrees.com/>
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com?subject=Your%20Email>
[https://51degrees.com/portals/0/images/twitterbird.png] 
@51Degrees<http://twitter.com/51Degreesmobi>
[https://51degrees.com/portals/0/images/linkedinicon.png] 
51Degrees<https://www.linkedin.com/company/2171864>

[Find out More]<https://51degrees.com/emailsig.aspx>


This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


0001-BUG-51d-Changes-to-the-buffer-API-in-1.9-were-not-ap.patch
Description:  0001-BUG-51d-Changes-to-the-buffer-API-in-1.9-were-not-ap.patch


RE: [PATCHES] 51d: fix warning when building with 51Degrees release version 3.2.12.12

2017-10-06 Thread Ben Shillito
Hi Willy,

Don't worry, it's an easy mistake.

Yeah, you're absolutely right, my mistake. I assumed that both the URLs were 
"github.com/51degrees", however as the first one is "git.51degrees.com" which 
does indeed contain the deprecated Trie source, you can carry on using 3.2.10 
on this URL. I have attached a patch on top of Dragan's which updates the 
branch name for 3.2.12 and adds instructions for obtaining a free Hash Trie 
data file.

Whilst Trie is still available, I think it is important to make it clear to 
users that, as it uses a lot of memory and was not an optimal solution, the new 
hash based acyclic graph solution (Hash Trie) is the preferred solution. The 
new solution uses 20% of the memory and is 300% faster whilst offering tuning 
options such as difference and drift to avoid over fitting results to the 
training data. The source code folder continues to be named "trie" to maintain 
backwards compatibility in build processes, and source code is public interface 
compatible with prior versions (as implied by Dragan's statement in the readme).

51Degrees are suggesting the small number of Trie users migrate to the new 
version with HAProxy. Any feedback from the HAProxy community would be very 
useful to gauge demand for further updates to the prior Trie data files.

Just to summarise, 3.2.10 on git.51degrees.com/device-detection should be used 
for the old Trie source, and 3.2.12 on github.com/51degrees/device-detection 
should be used for the new Hash Trie source.

Apologies for any confusion.

Regards,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy TARREAU [mailto:wtarr...@haproxy.com]
Sent: 05 October 2017 17:39
To: Ben Shillito <b...@51degrees.com>
Cc: Dragan Dosen <ddo...@haproxy.com>; haproxy@formilux.org
Subject: Re: [PATCHES] 51d: fix warning when building with 51Degrees release 
version 3.2.12.12

On Thu, Oct 05, 2017 at 04:09:09PM +, Ben Shillito wrote:
> Hi Willy,
>
> I have pulled the latest master, but I only see two commits from today. I 
> assume I'm in the right place " http://git.haproxy.org/git/haproxy;?

Argh! Sorry, my fault, I forgot to push :-(

And as stupid as I am I did it to verify so now it's pushed (I could have made 
the changes in place otherwise).

> Using 3.2.10 in 1.7 is fine for Pattern, my only concern is that the
> old Trie source is not available to for users to compile in 3.2.10.

I understood after the latest changes resulting in the public repository being 
erased that what was put back on the download site precisely was everything 
including the Trie that some people were using, but that only the database was 
not updated anymore for the Trie algo (ie: what was running in field would not 
prevent haproxy from being updated and rebuilt). And I thought we even got 
confirmations that it fixed the build issue for them.

> All method signatures in 3.2.12 are unchanged from 3.2.10, so using
> that in 1.7 will not be a problem. If you are more comfortable keeping
> that locked to the fixed 3.2.10, then that is fine,

The principle for our stable versions has always been the same for more than a 
decade : once a new version is released and put into stable state, we don't 
remove features so that users have exactly zero excuse for not updating their 
code within the branch they're using. So if they spent one month validating 
that haproxy 1.7 works and writing deployment scripts to keep it up to date, 
this process shall never fail during all the 1.7 maintenance cycle. This is why 
it's important to maintain the compatibility for something that was emitted. 
However :

  1) it is not a guarantee that it will become better over time (ie in your
 case you provide a database that may or may not be updated, they're
 free to use an outdated one if that suits their needs),

  2) we should always ensure to limit the number of upgrade cycles for our
 users, which means that new adopters who have not yet settled on a
 choice should always be encouraged to pick the most future-proof one.

So in summary, deployments that used to work with 3.2.10 must continue to work 
with it when users simply upgrade their haproxy sources, but those not using it 
yet should prefer 3.2.12.

> but the line of Dragan's statement should  then read something like
> "either use the proven stable but frozen 3.2.10 version which supports
> the Pattern algorithm".

That's the part that's confusing me, because based on our previous discussions 
that was started by Thierry's report of build breakage, I understood that what 
you've put in place ensured it was now OK for them but that they wouldn't 
benefit anymore from updates on the Trie database.
Could you please double-check ?

> Or, if it makes things easier for you, I can backport the
> trie/51Degrees.c/h files to 3.2.10, meaning Trie can be used i

RE: [PATCHES] 51d: fix warning when building with 51Degrees release version 3.2.12.12

2017-10-05 Thread Ben Shillito
Hi Willy,

I have pulled the latest master, but I only see two commits from today. I 
assume I'm in the right place " http://git.haproxy.org/git/haproxy;?

Using 3.2.10 in 1.7 is fine for Pattern, my only concern is that the old Trie 
source is not available to for users to compile in 3.2.10. All method 
signatures in 3.2.12 are unchanged from 3.2.10, so using that in 1.7 will not 
be a problem. If you are more comfortable keeping that locked to the fixed 
3.2.10, then that is fine, but the line of Dragan's statement should  then read 
something like "either use the proven stable but frozen 3.2.10 version which 
supports the Pattern algorithm".

Or, if it makes things easier for you, I can backport the trie/51Degrees.c/h 
files to 3.2.10, meaning Trie can be used in that version (the Hash Trie files 
we now distribute will be needed instead of the deprecated Trie).

Thanks,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy TARREAU [mailto:wtarr...@haproxy.com]
Sent: 05 October 2017 16:40
To: Ben Shillito <b...@51degrees.com>
Cc: Dragan Dosen <ddo...@haproxy.com>; haproxy@formilux.org
Subject: Re: [PATCHES] 51d: fix warning when building with 51Degrees release 
version 3.2.12.12

On Thu, Oct 05, 2017 at 03:15:20PM +, Ben Shillito wrote:
> Yes of course. I have attached a patch which has the correct branch and 
> updated instructions about where to get the free Hash Trie file now that it 
> is no longer part of the git repository.

But this one is for the doc before Dragan's patch, please pull the master.
By the way this makes me realize that we'll probably need to have a different 
doc for 1.7 and 1.8. I agree with you that 1.8 should only reference the up to 
date version. Build instructions for 3.2.10 should only appear in 1.7 and older 
for people who rely on an old signature, but there the download URL and 
instructions for 3.2.12 should be correct as well.

So feel free to update your patch on top of the current master, removing 
references to 3.2.10 and Trie, and I'll take Dragan's patch + the part relevant 
to 3.2.12 for 1.7 to encourage users to upgrade without forcing them.

Thanks!
Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.



RE: [PATCHES] 51d: fix warning when building with 51Degrees release version 3.2.12.12

2017-10-05 Thread Ben Shillito
Hi Willy,

Yes of course. I have attached a patch which has the correct branch and updated 
instructions about where to get the free Hash Trie file now that it is no 
longer part of the git repository.

Regards,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy TARREAU [mailto:wtarr...@haproxy.com]
Sent: 05 October 2017 15:50
To: Ben Shillito <b...@51degrees.com>
Cc: Dragan Dosen <ddo...@haproxy.com>; haproxy@formilux.org
Subject: Re: [PATCHES] 51d: fix warning when building with 51Degrees release 
version 3.2.12.12

Hi Ben!

On Thu, Oct 05, 2017 at 02:31:33PM +, Ben Shillito wrote:
> Hi Dragan,
>
> The changes seem reasonable to me. A couple of things I should mention though.
>
> The branch name for 3.2.12.12 should be in the same format as 3.2.10 (i.e. 
> "v3.2.12"). The other thing is that the statement about 3.2.10 is not 
> correct. The Trie data files were large and the solution had become 
> unwieldly, so this has been removed from our repository. The Hash Trie 
> however, is completely interface compatible and is available from 3.2.12 
> onwards. I suggest just stating "v3.2.12" and point out the new Hash Trie can 
> be obtained by signing up for free at 
> https://51degrees.com/products/store/on-premise-device-detection.

Thanks for the heads up. Too bad I merged the patch this morning by lack of any 
comment. Would you care to provide an updated patch on top of the current 
master to reflect the best suggestions ?

Thanks,
Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


0001-DOC-51d-Update-51Degrees-git-URL-to-feature-frozen-b.patch
Description: 0001-DOC-51d-Update-51Degrees-git-URL-to-feature-frozen-b.patch


RE: [PATCHES] 51d: fix warning when building with 51Degrees release version 3.2.12.12

2017-10-05 Thread Ben Shillito
Hi Dragan,

The changes seem reasonable to me. A couple of things I should mention though.

The branch name for 3.2.12.12 should be in the same format as 3.2.10 (i.e. 
"v3.2.12"). The other thing is that the statement about 3.2.10 is not correct. 
The Trie data files were large and the solution had become unwieldly, so this 
has been removed from our repository. The Hash Trie however, is completely 
interface compatible and is available from 3.2.12 onwards. I suggest just 
stating "v3.2.12" and point out the new Hash Trie can be obtained by signing up 
for free at https://51degrees.com/products/store/on-premise-device-detection.

Regards,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Dragan Dosen [mailto:ddo...@haproxy.com]
Sent: 02 October 2017 10:14
To: haproxy@formilux.org
Cc: Willy Tarreau <wtarr...@haproxy.com>; Ben Shillito <b...@51degrees.com>
Subject: [PATCHES] 51d: fix warning when building with 51Degrees release 
version 3.2.12.12

Hi all,

I'm sending you a new set of patches -- fix for warning that appears when 
building with 51Degrees release that uses a new Hash Trie algorithm (release 
version 3.2.12.12):

  * BUILD/MINOR: 51d: fix warning when building with 51Degrees release version 
3.2.12.12
  * DOC: 51d: add 51Degrees git URL that points to release version 3.2.12.12

Patches can be backported in 1.7.

Best regards,
Dragan Dosen
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


RE: Build error with 51degrees library

2017-07-19 Thread Ben Shillito
Hi Willy,

Thanks for the additional change.

And that's quite alright, if there is a problem with our API that is affecting 
users live builds like this, then it will always be our top priority.

Regards,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 19 July 2017 19:56
To: Ben Shillito <b...@51degrees.com>
Cc: Florian Tham <fgt...@gmail.com>; James Rosewell <ja...@51degrees.com>; 
Thierry FOURNIER <tfourn...@arpalert.org>; haproxy@formilux.org
Subject: Re: Build error with 51degrees library

Hi Ben,

On Wed, Jul 19, 2017 at 05:49:44PM +, Ben Shillito wrote:
> Hi Willy and HaProxy Forum,
>
> I appreciate this has caused users problems which we overlooked when
> making these changes. Rest assured we are introducing fixed feature
> branches as part of procedure to prevent this from happening again.
>
> We have done the following to remedy the current issues:
> 1. branches v3.2.5 and v3.2.10 are now published as stable branches at 
> https://git.51degrees.com/device-detection.git. These are stable, feature 
> locked, branches and will only be updated with security fixes.
> 2. I have submitted to Willy patch files for 1.6, 1.7 and main dev branches. 
> These change the URL which is referenced in the instructions, and 1.7/dev now 
> reference the 3.2.10 stable branch.

Thank you. I'll fix the URL in your patches as there were some upper case 
characters causing "git clone" to fail, but the URL above works. And now with a 
version in the branch, I'm confident there should not be any similar issue 
anymore.

Thanks for having dealt with this issue quickly.

Willy
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.



RE: Build error with 51degrees library

2017-07-19 Thread Ben Shillito
Hi Willy and HaProxy Forum,

I appreciate this has caused users problems which we overlooked when making 
these changes. Rest assured we are introducing fixed feature branches as part 
of procedure to prevent this from happening again.

We have done the following to remedy the current issues:
1. branches v3.2.5 and v3.2.10 are now published as stable branches at 
https://git.51degrees.com/device-detection.git. These are stable, feature 
locked, branches and will only be updated with security fixes.
2. I have submitted to Willy patch files for 1.6, 1.7 and main dev branches. 
These change the URL which is referenced in the instructions, and 1.7/dev now 
reference the 3.2.10 stable branch.

Regards,

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees

-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 19 July 2017 10:59
To: Ben Shillito <b...@51degrees.com>
Cc: Florian Tham <fgt...@gmail.com>; James Rosewell <ja...@51degrees.com>; 
Thierry FOURNIER <tfourn...@arpalert.org>; haproxy@formilux.org
Subject: Re: Build error with 51degrees library

Hi Ben,

On Wed, Jul 19, 2017 at 09:33:28AM +, Ben Shillito wrote:
> Hi HaProxy Forum,
>
> In relation to the build error with 51Degrees library. The data files
> associated with Trie are very large and were destroying the
> performance of the Git repository. As we believe a very small
> percentage of users were actually using the files they are now being 
> distributed separately to GitHub.

Very small or not, the reality is that the documented build procedure for 
STABLE releases has been broken again without even a prior warning.

> See this blog post for full details.
>
> https://51degrees.com/blog/51degrees-github-repository-housekeeping-im
> portant-update

Hardly an acceptable explanation for anyone trying to upgrade their haproxy to 
benefit from the latest security fixes, I'm sorry. Also if it's just a matter 
of database size, you could imagine distributing the smallest version and 
providing a conversion utility to turn it into the most appropriate format in 
field.

> If you'd like to continue to use Trie please can you contact us via
> the web site at https://51degrees.com/contact-us. We can then advise you 
> further.

Then why not try to address the problem by placing the code somewhere online 
instead of asking every user to have to contact you ?

> There are no plans to alter the distribution of the Pattern algorithm
> as the files are substantially smaller and work well with Git. All
> HAProxy builds should continue to work with the Pattern option. Just
> like HAProxy the open source business model is at the core of what we do.

So in short what you're saying is that the Trie algorithm that used to be 
available in opensource and promoted in the documentation as the fastest one is 
no longer opensource, screwing all its users and forcing them to choose between 
falling back to the slower Pattern method or not updating haproxy and stay with 
securiy issues in production.

> The v3.2.5 branch has now been republished, this was missed when the
> repository was trimmed, so apologies for any backporting problems this
> has caused.

Thanks, so this will fix version 1.6 but not version 1.7 since last year you 
provided a patch to replace the API before 1.7.0 release. Can you please also 
publish the last branch needed to build 1.7 and provide an update for the doc 
to explain how to build it now ?

You have no idea of the pain you cause to everyone by constantly breaking 
stable versions, really! And this throws a discredit on haproxy as a stable 
product! Please use branches and stop referencing your development branch as 
the official one!

> Willy; we're unsure what you mean by "broke the stable series *AGAIN*"
> and "betrayed".

Very simple : you did this already one year ago in the middle of haproxy
1.6 when the public code API was suddenly replaced in an incompatible way, 
causing quite some pain by then already. Users pick a version, they deploy it, 
prepare their update processes and don't have to think about it anymore, 
trusting all of us to deliver timely updates that they can deploy quickly.
In your case, once in a while they discover that some code broke, they have to 
revisit their build process to adapt to a different branch, after waiting for 
some time for the previous code to be made available again, etc. This happened 
twice in haproxy's existence, and the two times it came from your software. 
It's not serious.

> Could you provide further information so we can see if there's a
> harmonious way forward if we've made an innocent mistake?

The proper way to deliver a library is to version it. While you can encourage 
your users to test the development branch at their own risk, any user should be 
able to rely on a stable branch which only provides fixes. Thus for

RE: Build error with 51degrees library

2017-07-19 Thread Ben Shillito
Hi HaProxy Forum,

In relation to the build error with 51Degrees library. The data files 
associated with Trie are very large and were destroying the performance of the 
Git repository. As we believe a very small percentage of users were actually 
using the files they are now being distributed separately to GitHub. See this 
blog post for full details.

https://51degrees.com/blog/51degrees-github-repository-housekeeping-important-update

If you'd like to continue to use Trie please can you contact us via the web 
site at https://51degrees.com/contact-us. We can then advise you further.

There are no plans to alter the distribution of the Pattern algorithm as the 
files are substantially smaller and work well with Git. All HAProxy builds 
should continue to work with the Pattern option. Just like HAProxy the open 
source business model is at the core of what we do.

The v3.2.5 branch has now been republished, this was missed when the repository 
was trimmed, so apologies for any backporting problems this has caused.

Willy; we’re unsure what you mean by “broke the stable series *AGAIN*” and 
“betrayed”. Could you provide further information so we can see if there’s a 
harmonious way forward if we’ve made an innocent mistake?

Thanks,

Ben

Ben Shillito
Developer
O: +44 1183 287152
E: b...@51degrees.com
T: @51Degrees
-Original Message-
From: Florian Tham [mailto:fgt...@gmail.com]
Sent: 19 July 2017 09:20
To: Willy Tarreau <w...@1wt.eu>
Cc: James Rosewell <ja...@51degrees.com>; Ben Shillito <b...@51degrees.com>; 
m...@51degrees.com; Thierry FOURNIER <tfourn...@arpalert.org>; 
haproxy@formilux.org
Subject: Re: Build error with 51degrees library

On Wed, Jul 19, 2017 at 9:27 AM, Willy Tarreau <w...@1wt.eu> wrote:
> I just found a fork of the github repo here which I think could
> possibly work, it even contains the v3.2.5 branch :
>
> https://github.com/aerendil/device-detection-nginx-fix
>
> It would be a good idea to clone it before it disappears.

Thank you, this works fine with haproxy-1.7 and buys me the time I need to look 
into device detection alternatives.

One would also need to hold on to the 51Degrees-LiteV3.2.trie data file.
Currently, 51degrees only provides .dat files for use with the pattern 
algorithm.

Best regards,

Florian
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


[PATCH] 51Degrees Docs

2016-12-02 Thread Ben Shillito
I have attached a patch which adds definitions for the 51Degrees converter and 
fetch functions to docs/configuration.txt so the they will appear in the online 
documentation.

This should also be backported.

Thanks,
Ben.

Ben Shillito
Developer
[51Degrees]<https://51degrees.com/>
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com?subject=Your%20Email>
[https://51degrees.com/portals/0/images/twitterbird.png] 
@51Degrees<http://twitter.com/51Degreesmobi>
[https://51degrees.com/portals/0/images/linkedinicon.png] 
51Degrees<https://www.linkedin.com/company/2171864>

[Find out More]<https://51degrees.com/emailsig.aspx>


This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


0001-DOC-Added-51Degrees-conv-and-fetch-functions-to-docu.patch
Description: 0001-DOC-Added-51Degrees-conv-and-fetch-functions-to-docu.patch


RE: 51Degrees Trie Update Patch

2016-08-08 Thread Ben Shillito
Hi Willy,

Yes I agree, this is a problem.
I have attached a patch with a change to the readme which explains that that 
the correct version must be pulled if using <=1.6.

Regards,
Ben.

Ben Shillito
Developer
E: b...@51degrees.com
T: @51Degrees
-Original Message-
From: Willy Tarreau [mailto:w...@1wt.eu]
Sent: 04 August 2016 16:43
To: Ben Shillito <b...@51degrees.com>
Cc: haproxy@formilux.org
Subject: Re: 51Degrees Trie Update Patch

Hi Ben,

sorry I missed this one.

On Wed, Jul 06, 2016 at 11:25:17AM +0000, Ben Shillito wrote:
> Attached is a patch submission which makes changes to the 51Degrees
> Trie implementation to work with recent changes to
> github.com/51Degrees/Device-Detection/src/trie/51Degrees.c.

Thanks, but that makes me realize something really bad :

--- a/src/51d.c
+++ b/src/51d.c
@@ -235,7 +235,7 @@ static void _51d_set_device_offsets(struct sample *smp)
 (global._51degrees.header_names + index)->len,
 msg->chn->buf->p, idx, ) == 1) {
 (offsets->firstOffset + offsets->size)->httpHeaderOffset = 
*(global._51degrees.header_offsets + index);
-(offsets->firstOffset + offsets->size)->deviceOffset = 
fiftyoneDegreesGetDeviceOffset(ctx.line + ctx.val);
+(offsets->firstOffset + offsets->size)->deviceOffset =
+fiftyoneDegreesGetDeviceOffset(_51degrees.data_set, ctx.line +
+ctx.val);
 offsets->size++;
 }

As you can see the API was changed in the master branch which is also the one 
which was documented in the stable version as being the one to pull from. This 
is really not cool because stable users who apply what is written in the readme 
will get a build failure. Could you please at least provide an update for the 
build procedure in the readme that we can backport to 1.6 to reference a branch 
that continues to work for these users ? While it will not fix the problem for 
existing users, at least they can find a hint in newer releases about how to 
fix their issues.

Thanks,
Willy

This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


0001-DOC-Updated-51Degrees-section-of-ReadMe-to-reflect-c.patch
Description: 0001-DOC-Updated-51Degrees-section-of-ReadMe-to-reflect-c.patch


51Degrees Trie Update Patch

2016-07-06 Thread Ben Shillito
Attached is a patch submission which makes changes to the 51Degrees Trie 
implementation to work with recent changes to 
github.com/51Degrees/Device-Detection/src/trie/51Degrees.c.

Ben Shillito
Developer
[51Degrees]<https://51degrees.com/>
O: +44 1183 287152
E: b...@51degrees.com<mailto:b...@51degrees.com?subject=Your%20Email>
[https://51degrees.com/portals/0/images/twitterbird.png] 
@51Degrees<http://twitter.com/51Degreesmobi>
[https://51degrees.com/portals/0/images/linkedinicon.png] 
51Degrees<https://www.linkedin.com/company/2171864>

[Find out More]<https://51degrees.com/emailsig.aspx>


This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


0001-BUILD-MAJOR-updated-51d-Trie-implementation-to-incor.patch
Description: 0001-BUILD-MAJOR-updated-51d-Trie-implementation-to-incor.patch


DOC: Edited 51Degrees section of README.

2015-12-03 Thread Ben Shillito
Hi,

Attached is a patch with an edit to the information in the README regarding 
51Degrees installation and configuration.

Ben.
This email and any attachments are confidential and may also be privileged. If 
you are not the named recipient, please notify the sender immediately and do 
not disclose, use, store or copy the information contained herein. This is an 
email from 51Degrees.mobi Limited, 5 Charlotte Close, Reading. RG47BY. T: +44 
118 328 7152; E: i...@51degrees.com; 51Degrees.mobi Limited t/as 51Degrees.


0001-DOC-Edited-51Degrees-section-of-README.patch
Description: 0001-DOC-Edited-51Degrees-section-of-README.patch