# File lib/protocols/smtpserver.rb, line 276
276:                 def process_data
277:                         unless @state.include?(:rcpt)
278:                                 send_data "503 Operation sequence error\r\n"
279:                         else
280:                                 succeeded = proc {
281:                                         send_data "354 Send it\r\n"
282:                                         @state << :data
283:                                         @databuffer = []
284:                                 }
285:                                 failed = proc {
286:                                         send_data "550 Operation failed\r\n"
287:                                 }
288: 
289:                                 d = receive_data_command
290: 
291:                                 if d.respond_to?(:callback)
292:                                         d.callback &succeeded
293:                                         d.errback &failed
294:                                 else
295:                                         (d ? succeeded : failed).call
296:                                 end
297:                         end
298:                 end