Snap! Websites Journal

Today I was checking my logs and noticed this entry. As we can see, within about 600ms, an attacker was trying to connect to many different ports (20480, 20736, 36895, 37151, 22528, 16671, 14340, 20992, 4135, 64288, 45090, 21248, 21504, 31775, 39455, 42254, 47115.)

Note: I hid the destination URL (x.x.x.x) on purpose. However, I did not hide the source!

Jul 23 11:20:34 finball1 kernel: [1661019.650298] [iptables] unknown: IN=eth0 OUT= SRC=87.62.140.210 DST=x.x.x.x LEN=44 TOS=0x00 PREC=0x00 TTL=57 ID=52074 PROTO=TCP SPT=26091 DPT=20480 WINDOW=131 RES=0x00 SYN URGP=0
Jul 23 11:20:34 ...

Today I wanted to get a plugin to work against the snapmanager.cgi executable's server.

The idea is pretty simple, the process loads the plugins and one of them (so far) wants to connect against the generate_content() signal, only that signal is part of the manager_cgi class which is not part of a .so library. Because of that, it doesn't expose its functions by default.

This is a quite interesting problem because it makes sense that the executable functions would not be visible to the dynamic linker. It should not be required. Actually, this is the first time I need such a feature, ...

I finally went back to libtld to make the tests work with the newest version so that way I could make a new upload on Sourceforget.net.

This newer version includes all the newer (and removed!) TLDs as of Jan 2018.

The TLDs are a fast moving target since those many additions accepted by ICANN, although most of the newest additions were in link with three or four countries and mainly commercial endeavors (i.e. a domain that offers sub-domains for sale.)

The new version also includes a PPA package as we have updated that part of our code so it compiles like a charm on launchpad.net. If you are ...

I pusblished a new version of CSS Preprocessor (csspp) because 1.0.9 and older had a bug in the output process which would not write the commas between lists of arguments in a declaration. For example, a box-shadow can be defined as follow:

box-shadow: 3px 2px 7px #888888, 0 0 4px #008800;

Versions before 1.0.10 would skip the comma after the first color, as shown below, rendering the whole declaration useless.

box-shadow:3px 2px 7px #8880 0 4px #080;

Download right here: https://sourceforge.net/projects/csspp/files/

Project here: CSS Preprocessor tool and library

WARNING: This implementation of an inter-process, inter-computer lock works with Cassandra only if you know that you are directly dealing with a single Cassandra node at a time. The Cassandra C++ driver (probably all the drivers) makes use of a set of threads to connect to several Cassandra nodes and if the load of the current thread/node pair becomes too large, it will automatically switch to another thread/node pair. This means your messages may not be received in the order you sent them to the database cluster. As a result, the lock mechanism described below will not function as ...

I pusblished a new version of CSS Preprocessor (csspp) because 1.0.8 had one fix from Coverity when there were 4 such bugs total. 1.0.9 includes the other 3 fixes. It was a missused & operator (the parenthesis were missing.)

Version 1.0.9 is otherwise pretty much the same as 1.0.8, I applied a few other clean ups and updated the copyright notice to 2016. The library will soon be 1 year old!

Download right here: https://sourceforge.net/projects/csspp/files/

Project here: CSS Preprocessor tool and library

As I was working on the antihammering plugin for Snap!, I wanted to use the count() feature to quickly know how many hits there are for a given amount of time.

Only as I did that, I noticed that the count() was blocked at 100. The problem was that the predicate used at the lower layer in libQtCassandra would actually set the count maximum to 100 by default.

I think that since the count function only counts the columns of interest, that it goes really fast no matter what the counter maximum is and whether you have a predicate or not. So I changed the lower layer implementation to force the ...

The csspp compiler was updated after being scanned for potential problems by Coverity.

Coverity found one potential buffer overflow in the lexer. This was certainly not possible to reach because that specific function is private and only used for a very few characters. But it is always worth fixing such bugs.

There are two other small issues: a compiler was created with 'this' as parameter instead of 'true' and a test misused the & operator.

So, as an end user you will probably not see any difference between 1.0.7 and 1.0.8.

Download right here: ...

The Zipios library was scanned using Coverity and we found a couple of variable members that were not initialized. Version 2.1.1 fixes these problems.

There were a few other fixes along the road that were really not major but are included in this version of the library. There is the changelog information:

  • Fixed a couple of class initializations that were missing.
  • Fixed a few system() call of which return values were not checked.
  • Added a BUILD_ZIPIOS_TESTS cmake option flag.
  • Fixed reference to README as README.md as it is called now.
  • Allow for ZIPIOS_WINDOWS to ...

Sample Code:

QtCassandra::QCassandraRowPredicate row_predicate;
row_predicate.setCount(100);
...

QtCassandra::QCassandraColumnRangePredicate column_predicate;
column_predicate.setCount(100);
...

The Cassandra system allows you to read an array of rows or columns. This is done by a special query command sent to the database system.

The libQtCassandra library offers predicate classes giving you the ability to read a set of rows or columns all at once (see example above.) In general, reading more at once is better because it gives you a faster transfer rate to get one large block ...

Snap! Websites
An Open Source CMS System in C++

Contact Us Directly