Hi, I made it work under my Ubuntu. The patch and all_in_one_zip are in the attachements. The most important change is in insim.c line 96, the select call. I changed
rc = select(0, &readfd, NULL, &exceptfd, &(I->socket.select_timeout));
to
rc = select(I->socket.s + 1, &readfd, NULL, &exceptfd, &select_timeout);
The select call modifies the timeout argument, so I made a local copy. The first argument has to be "the highest-numbered file descriptor in any of the three sets, plus 1". I'm not sure, if the windows implementation uses these arguments differently. Without this change the select call returns always zero for me.
The other changes are minor, some typos and warnings. I slightly change the rest of the insim_recv function just for more comfortable debugging.
I spent most of the time discovering, that lfsw_pb.lua example is written for an old version
[evt_bind("MSO"...) instead of evt_bind(ISP_MSO...)].
The API looks very good. I hope, that I'll build something bigger soon.
Tested configuration: (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4), liblua5.1-0-dev 5.1.1-2build1, LFS W17, wine-0.9.36.