# File lib/protocols/smtpserver.rb, line 431
431:                 def process_data_line ln
432:                         if ln == "."
433:                                 if @databuffer.length > 0
434:                                         receive_data_chunk @databuffer
435:                                         @databuffer.clear
436:                                 end
437: 
438: 
439:                                 succeeded = proc {
440:                                         send_data "250 Message accepted\r\n"
441:                                 }
442:                                 failed = proc {
443:                                         send_data "550 Message rejected\r\n"
444:                                 }
445: 
446:                                 d = receive_message
447: 
448:                                 if d.respond_to?(:set_deferred_status)
449:                                         d.callback(&succeeded)
450:                                         d.errback(&failed)
451:                                 else
452:                                         (d ? succeeded : failed).call
453:                                 end
454: 
455:                                 @state.delete :data
456:                         else
457:                                 # slice off leading . if any
458:                                 ln.slice!(0...1) if ln[0] == 46
459:                                 @databuffer << ln
460:                                 if @databuffer.length > @@parms[:chunksize]
461:                                         receive_data_chunk @databuffer
462:                                         @databuffer.clear
463:                                 end
464:                         end
465:                 end