Name: Jens-Uwe Mager
Member since: 2000-11-11 21:42:48
Last Login: 2007-02-22 01:52:18
Notes:
From the end of 1988 to the end of 2001 I did work for HELIOS Software as the technical director. I have been hacking on quite a few free software packages, but I contributed only small patches not major parts. I suspect that is what you get if you run the technical side of a software company, not much free time beyond the commercial projects. Early free software you might find is for example a pty driver for System V.2 systems published in comp.sources in 1987. Things I am interested in include network protocols, dynamic linking, perl and expecially modperl. As part of my interest in modperl I did some work on cvsweb.pl to make it work better if cached in the Apache server.
I must take things from my office back home, I started with the stereo equipment. By the end of the week I will need to be ready to give my office to my successor. It is a strange feeling to leave a job after 12 years leading the technical part of the company. I am at one point happy to have lots of free time in the near future but I will surely also miss the daily stress that I wanted to get rid off in the first place by leaving HELIOS.
Meanwhile another strange problem that we were looking at for a few days appears to be resolved. In our PCShare product which contains SMB file sharing we do have a complete netbios naming service. This netbios name service did not properly start up if it is the sole computer in a workgroup. First findings appeared to point to packet length problems, as choosing an odd length netbios machine name made things going (not completely, but it did get further along). Thinking a bit more about that I tried turning off hardware checksumming, and voila, it appears to work fine. The hardware checksumming feature was a recent addition to MacOS X, and appearently depending upon if a broadcast packet is an even or odd number of bytes in size has some weird problems.
I have fixed one strange bug that was causing multicast
address add/delete fail if used via the AppleTalk socket
ioctl interface. I did introduce this special ioctl
interface as not all systems sport an
SIOCADDMULTI/SIOCDELMULTI style interface. And to be exact
on AIX this is translated on AIX to the proper ndd_ctl
NDD_ENABLE_ADDRESS/NDD_DISABLE_ADDRESS calls. And here the
problem came in, I used a statment like this:
err = aa_ndd->ndd_ctl(aa_ndd, cmd == ATIOCADDMULTI? NDD_ENABLE_ADDRESS : NDD_DISABLE_ADDRESS, buf, len);
The problem here is the comparison cmd == ATIOCADDMULTI, cmd is a parameter that explicetely contains the unsigned int from the upper levels and ATIOCADDMULTI is a define using the standard sys/ioctl.h macros as _IOW('A', 5, struct ifreq). _IOW() contains some pretty obscure shifting and on AIX 64 bit does actually produce a sign extended 64 bit value that is negative (having the top 32 bits set to one). This will never compare to the plain 32 bit cmd value, casting using unsigned makes it work (cmd == (unsigned)ATIOCADDMULTI). Go figure.
jum certified others as follows:
Others have certified jum as follows:
[ Certification disabled because you're not logged in. ]
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!