# File lib/protocols/smtpserver.rb, line 418
418:                 def process_data_line ln
419:                         if ln == "."
420:                                 if @databuffer.length > 0
421:                                         receive_data_chunk @databuffer
422:                                         @databuffer.clear
423:                                 end
424: 
425: 
426:                                 succeeded = proc {
427:                                         send_data "250 Message accepted\r\n"
428:                                 }
429:                                 failed = proc {
430:                                         send_data "550 Message rejected\r\n"
431:                                 }
432: 
433:                                 d = receive_message
434: 
435:                                 if d.respond_to?(:set_deferred_status)
436:                                         d.callback &succeeded
437:                                         d.errback &failed
438:                                 else
439:                                         (d ? succeeded : failed).call
440:                                 end
441: 
442:                                 @state.delete :data
443:                         else
444:                                 # slice off leading . if any
445:                                 ln.slice!(0...1) if ln[0] == 46
446:                                 @databuffer << ln
447:                                 if @databuffer.length > @@parms[:chunksize]
448:                                         receive_data_chunk @databuffer
449:                                         @databuffer.clear
450:                                 end
451:                         end
452:                 end