Server should not die when receiving bad data.

Replace ProgrammingError() with just a warning. Also fix switch
statement's erroneous fall-through, it was causing hub's serverd to die
when call-collect reporting was denied.
Removed unnecessary and dangerous scanf.
Merge pull request #818 from jimis/bug1996

Bug1996