Exemple #1
0
    def parse(self, chunk):
        HTTPMessage.parse(self, chunk)

        content_type = self.headers.get("Content-Type", "null")
        
        raw_body = self.body
        self.body = SLPMessageBody.build(content_type, raw_body)
Exemple #2
0
    def _handle_MSG(self, command):
        message = Message(None, command.payload)
        content_type = message.content_type
        if content_type[0] == 'text/x-msmsgsprofile':
            self._client.profile._server_property_changed("profile",
                    command.payload)

            if self._protocol_version < 15:
                #self._send_command('SYN', ('0', '0'))
                raise NotImplementedError, "Missing Implementation, please fix"
            else:
                self._send_command("BLP",
                        (self._client.profile.privacy,))
                self._state = ProtocolState.SYNCHRONIZING
                self._client.address_book.sync()
        elif content_type[0] in \
                ('text/x-msmsgsinitialemailnotification', \
                 'text/x-msmsgsemailnotification'):
            self.emit("mail-received", message)
        elif content_type[0] in \
                ('text/x-msmsgsinitialmdatanotification', \
                 'text/x-msmsgsoimnotification'):
            if self._client.oim_box is not None:
                self._client.oim_box._state = \
                    OIM.OfflineMessagesBoxState.NOT_SYNCHRONIZED
                m = HTTPMessage()
                m.parse(message.body)
                mail_data = m.get_header('Mail-Data').strip()
                if mail_data == 'too-large':
                    mail_data = None
                self._client.oim_box.sync(mail_data)
        elif content_type[0] == 'text/x-msmsgsactivemailnotification':
            pass
Exemple #3
0
 def __init__(self, sender=None, message=""):
     """Initializer
         
         @param body: The body of the message, it is put after the headers
         @type body: string"""
     HTTPMessage.__init__(self)
     self.sender = sender
     if message:
         self.parse(message)
Exemple #4
0
    def __init__(self, content_type, session_id=None, s_channel_state=0, capabilities_flags=1):
        HTTPMessage.__init__(self)
        self.content_type = content_type

        if session_id is not None:
            self.add_header("SessionID", session_id)
        if s_channel_state is not None:
            self.add_header("SChannelState", s_channel_state)
        if capabilities_flags is not None:
            self.add_header("Capabilities-Flags", capabilities_flags)
Exemple #5
0
 def __init__(self, body=""):
     """Initializer
         
         @param body: The body of the message, it is put after the headers
         @type body: string"""
     HTTPMessage.__init__(self)
     self.passport = 'Hotmail'
     self.friendly_name = 'Hotmail'
     self.body = body
     self.headers = {'MIME-Version' : '1.0', 'Content-Type' : 'text/plain'}
Exemple #6
0
    def __init__(self, to="", frm="", branch="", cseq=0, call_id="", max_forwards=0):
        HTTPMessage.__init__(self)
        self.add_header("To", "<msnmsgr:%s>" % to)
        self.add_header("From", "<msnmsgr:%s>" % frm)
        if branch:
            self.add_header("Via", "MSNSLP/1.0/TLP ;branch=%s" % branch)
        self.add_header("CSeq", str(cseq))
        if call_id:
            self.add_header("Call-ID", call_id)
        self.add_header("Max-Forwards", str(max_forwards))

        # Make the body a SLP Message wih "null" content type
        self.body = SLPNullBody()
Exemple #7
0
 def __str__(self):
     if self.body is None:
         self.add_header("Content-Type", "null")
         self.add_header("Content-Length", 0)
     else:
         self.add_header("Content-Type", self.body.content_type)
         self.add_header("Content-Length", len(str(self.body)))
         
     return HTTPMessage.__str__(self)
Exemple #8
0
 def __str__(self):
     return HTTPMessage.__str__(self) + "\x00"
Exemple #9
0
 def parse(self, data):
     if len(data) == 0:
         return
     data.rstrip('\x00')
     HTTPMessage.parse(self, data)