Цитирую "Chris A. Kalin" <[EMAIL PROTECTED]>:

> I actually saw this same problem way back in the post 0.3 CVS days
> (and
> before), and I wasn't even involving checkrad.  I would turn on
> Simultaneous-Use, and I would immediately begin to get completely
> bogus
> Client-Ip-Addresses in my accounting packets...IPs that had nothing to
> do
> with my network (I remember 0.0.0.0 being one of the examples).  And I
> would
> get them from my MAX TNTs, my PM3s, my Cisco AS5200s, and the various
> RADIUS
> servers that proxied to me.  Some packets would be fine, others would
> be
> bogus.
> It was so weird and pervasive I just canned the implementation and
> didn't
> really troubleshoot past isolating Simultaneous-Use as the cause. 
> I've
> actually been meaning to revisit this now that .5 is out and see if life
> is
> better.
> Although it is reassuring to see that it didn't only bite me.  :)

So, there is a piece of code in rlm_radutmp.c/radutmp_checksimul():

                        radutmp_unlock(fd);
                        rcode = rad_check_ts(u.nas_address, u.nas_port, login,
                                             session_id);
                        radutmp_lock(fd);

                        if (rcode == 1) {
                                ++request->simul_count;
                                /*
                                 *      Does it look like a MPP attempt?
                                 */
                                if (strchr("SCPA", u.proto) &&
                                    ipno && u.framed_address == ipno)
                                        request->simul_mpp = 2;
                                else if (strchr("SCPA", u.proto) && call_num &&
                                        !strncmp(u.caller_id,call_num,16))
                                        request->simul_mpp = 2;
                        }
                        else {
                                /*
                                 *      False record - zap it.
                                 */

                                session_zap(u.nas_address, u.nas_port, login,
                                            session_id, u.framed_address,
                                            u.proto, 0);
                        }

If rad_check_ts() returns 1 (dup found), and no multilink is there, this code 
simply increments request->simul_count, but if not, it does session_zap() (and 
generates "fake" Accounting-Stop record with fields such in my case). So it 
seems to be a problem in rad_process().

-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to