# File lib/protocols/smtpserver.rb, line 289
289:                 def process_data
290:                         unless @state.include?(:rcpt)
291:                                 send_data "503 Operation sequence error\r\n"
292:                         else
293:                                 succeeded = proc {
294:                                         send_data "354 Send it\r\n"
295:                                         @state << :data
296:                                         @databuffer = []
297:                                 }
298:                                 failed = proc {
299:                                         send_data "550 Operation failed\r\n"
300:                                 }
301: 
302:                                 d = receive_data_command
303: 
304:                                 if d.respond_to?(:callback)
305:                                         d.callback(&succeeded)
306:                                         d.errback(&failed)
307:                                 else
308:                                         (d ? succeeded : failed).call
309:                                 end
310:                         end
311:                 end