# File lib/protocols/smtpserver.rb, line 396
396:                 def process_data_line ln
397:                         if ln == "."
398:                                 if @databuffer.length > 0
399:                                         receive_data_chunk @databuffer
400:                                         @databuffer.clear
401:                                 end
402: 
403: 
404:                                 succeeded = proc {
405:                                         send_data "250 Message accepted\r\n"
406:                                 }
407:                                 failed = proc {
408:                                         send_data "550 Message rejected\r\n"
409:                                 }
410: 
411:                                 d = receive_message
412: 
413:                                 if d.respond_to?(:set_deferred_status)
414:                                         d.callback &succeeded
415:                                         d.errback &failed
416:                                 else
417:                                         (d ? succeeded : failed).call
418:                                 end
419: 
420:                                 @state.delete :data
421:                         else
422:                                 # slice off leading . if any
423:                                 ln.slice!(0...1) if ln[0] == 46
424:                                 @databuffer << ln
425:                                 if @databuffer.length > @@parms[:chunksize]
426:                                         receive_data_chunk @databuffer
427:                                         @databuffer.clear
428:                                 end
429:                         end
430:                 end