Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "callbacks.h"
- void Callbacks::run()
- {
- for (int i = 1; i < 20; i++)
- {
- mySockets[i].fd = -1;
- mySockets[i].events = POLLIN;
- mySockets[i].revents = 0;
- mySocketsSsl[i].isSSL = false;
- mySocketsSsl[i].isConnected = false;
- mySocketsSsl[i].ctx = NULL;
- mySocketsSsl[i].ssl = NULL;
- }
- mySockets[0].fd = 0;
- mySockets[0].events = POLLIN;
- mySockets[0].revents = 0;
- uname = "adressemouahahahaha";
- pass = "motdepassemouahahaha";
- myUsername = uname;
- MSN::NotificationServerConnection mainConnection(uname, pass, *this);
- mainConnection.connect("messenger.hotmail.com", 1863);
- while (1)
- {
- poll(mySockets, 20, -1);
- for (int i = 1; i < 20; i++)
- {
- if (mySockets[i].fd == -1)
- break;
- if (mySockets[i].revents & POLLHUP)
- {
- mySockets[i].revents = 0;
- continue;
- }
- if (mySockets[i].revents & (POLLIN | POLLOUT | POLLPRI))
- {
- MSN::Connection *c;
- c = mainConnection.connectionWithSocket((void*)mySockets[i].fd);
- if (c != NULL)
- {
- if(mySocketsSsl[i].isSSL && !mySocketsSsl[i].isConnected)
- {
- BIO *bio_socket_new;
- const SSL_METHOD *meth=NULL;
- meth=SSLv23_client_method();
- SSLeay_add_ssl_algorithms();
- mySocketsSsl[i].ctx = SSL_CTX_new(meth);
- mySocketsSsl[i].ssl = SSL_new(mySocketsSsl[i].ctx);
- bio_socket_new = BIO_new_socket(mySockets[i].fd, BIO_CLOSE);
- if(!mySocketsSsl[i].ssl)
- break;
- BIO_set_nbio(bio_socket_new, 0);
- SSL_set_bio(mySocketsSsl[i].ssl, bio_socket_new, bio_socket_new);
- SSL_set_mode(mySocketsSsl[i].ssl, SSL_MODE_AUTO_RETRY);
- int ret = SSL_connect(mySocketsSsl[i].ssl);
- mySocketsSsl[i].isConnected = true;
- }
- if (c->isConnected() == false)
- c->socketConnectionCompleted();
- if (mySockets[i].revents & POLLIN)
- {
- if(mySocketsSsl[i].isSSL && mySocketsSsl[i].isConnected)
- {
- if(SSL_want_read(mySocketsSsl[i].ssl))
- {
- mySockets[i].revents = 0;
- continue;
- }
- }
- c->dataArrivedOnSocket();
- }
- if (mySockets[i].revents & POLLOUT)
- c->socketIsWritable();
- }
- }
- if (mySockets[i].revents & (POLLERR | POLLNVAL))
- {
- MSN::Connection *c = mainConnection.connectionWithSocket((void*)mySockets[i].fd);
- if (c != NULL)
- delete c;
- mySockets[i].fd = -1;
- mySockets[i].revents = 0;
- continue;
- }
- }
- if (mySockets[0].revents & POLLIN)
- {
- // handle_command(mainConnection);
- mySockets[0].revents = 0;
- }
- }
- }
- void Callbacks::registerSocket(void *s, int reading, int writing, bool isSSL)
- {
- for (int a = 1; a < 20; a++)
- {
- if (mySockets[a].fd == -1 || mySockets[a].fd == getSocketFileDescriptor(s))
- {
- if(mySockets[a].fd == -1)
- mySockets[a].events = 0;
- if (reading)
- mySockets[a].events |= POLLIN;
- if (writing)
- mySockets[a].events |= POLLOUT;
- mySockets[a].fd = getSocketFileDescriptor(s);
- if(isSSL)
- mySocketsSsl[a].isSSL = true;
- return;
- }
- }
- }
- int Callbacks::getSocketFileDescriptor (void *sock)
- {
- long a = (long)sock;
- return (int)a;
- }
- void Callbacks::closeSocket(void *s)
- {
- for (int a = 1; a < 20; a++)
- {
- if (mySockets[a].fd == getSocketFileDescriptor(s))
- {
- close(getSocketFileDescriptor(s));
- if(mySocketsSsl[a].isSSL)
- {
- if(mySocketsSsl[a].ssl)
- {
- if(mySocketsSsl[a].ssl) SSL_set_shutdown(mySocketsSsl[a].ssl, SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN);
- if(mySocketsSsl[a].ssl) SSL_free(mySocketsSsl[a].ssl);
- if(mySocketsSsl[a].ctx) SSL_CTX_free(mySocketsSsl[a].ctx);
- mySocketsSsl[a].ssl=NULL;
- mySocketsSsl[a].ctx=NULL;
- }
- }
- for (int b = a; b < 19; b++)
- {
- mySockets[b].fd = mySockets[b + 1].fd;
- mySockets[b].revents = mySockets[b + 1].revents;
- mySockets[b].events = mySockets[b + 1].events;
- mySocketsSsl[b].isSSL = mySocketsSsl[b + 1].isSSL;
- mySocketsSsl[b].isConnected = mySocketsSsl[b + 1].isConnected;
- mySocketsSsl[b].ssl = mySocketsSsl[b + 1].ssl;
- mySocketsSsl[b].ctx = mySocketsSsl[b + 1].ctx;
- }
- mySockets[19].fd = -1;
- mySocketsSsl[19].isConnected = false;
- mySocketsSsl[19].isSSL = false;
- mySocketsSsl[19].ssl = NULL;
- mySocketsSsl[19].ctx = NULL;
- }
- }
- }
- void Callbacks::unregisterSocket(void *s)
- {
- for (int a = 1; a < 20; a++)
- {
- if (mySockets[a].fd == getSocketFileDescriptor(s))
- {
- mySockets[a].events = 0;
- }
- }
- }
- void Callbacks::gotFriendlyName(MSN::NotificationServerConnection * conn, std::string friendlyname)
- {}
- void Callbacks::gotBuddyListInfo(MSN::NotificationServerConnection * conn, MSN::ListSyncInfo * info)
- {
- std::map<std::string, MSN::Buddy *>::iterator i = info->contactList.begin();
- std::map<std::string, int> allContacts;
- for (; i != info->contactList.end(); i++)
- {
- MSN::Buddy *contact = (*i).second;
- if(contact->lists & MSN::LST_AB ) // only if it is the address book
- {
- allContacts[contact->userName.c_str()]=0;
- allContacts[contact->userName.c_str()] |= MSN::LST_AB;
- std::list<MSN::Buddy::PhoneNumber>::iterator pns = contact->phoneNumbers.begin();
- std::list<MSN::Group *>::iterator g = contact->groups.begin();
- for (; g != contact->groups.end(); g++)
- printf(" G: %s\n", (*g)->name.c_str());
- for (; pns != contact->phoneNumbers.end(); pns++)
- printf(" %s: %s (%d)\n", (*pns).title.c_str(), (*pns).number.c_str(), (*pns).enabled);
- }
- if(contact->lists & MSN::LST_AL )
- {
- allContacts[contact->userName.c_str()] |= MSN::LST_AL;
- printf("-AL %s \n", contact->userName.c_str());
- }
- if(contact->lists & MSN::LST_BL )
- {
- allContacts[contact->userName.c_str()] |= MSN::LST_BL;
- printf("-BL %s \n", contact->userName.c_str());
- }
- if(contact->lists & MSN::LST_RL )
- printf("-RL %s \n", contact->userName.c_str());
- if(contact->lists & MSN::LST_PL )
- printf("-PL %s \n", contact->userName.c_str());
- }
- std::map<std::string, int>::iterator b = allContacts.begin();
- conn->completeConnection(allContacts,info);
- }
- void Callbacks::gotLatestListSerial(MSN::NotificationServerConnection * conn, std::string lastChange)
- {}
- void Callbacks::gotGTC(MSN::NotificationServerConnection * conn, char c)
- {}
- void Callbacks::gotOIMDeleteConfirmation(MSN::NotificationServerConnection * conn, bool success, std::string id)
- {}
- void Callbacks::gotOIMSendConfirmation(MSN::NotificationServerConnection * conn, bool success, int id)
- {}
- void Callbacks::gotOIM(MSN::NotificationServerConnection * conn, bool success, std::string id, std::string message)
- {}
- void Callbacks::gotOIMList(MSN::NotificationServerConnection * conn, std::vector<MSN::eachOIM> OIMs)
- {}
- void Callbacks::connectionReady(MSN::Connection * conn)
- {
- std::cout << "SAMARCH";
- }
- void Callbacks::gotBLP(MSN::NotificationServerConnection * conn, char c)
- {}
- void Callbacks::addedListEntry(MSN::NotificationServerConnection * conn, MSN::ContactList list, MSN::Passport username, std::string friendlyname)
- {}
- void Callbacks::removedListEntry(MSN::NotificationServerConnection * conn, MSN::ContactList list, MSN::Passport username)
- {}
- void Callbacks::addedGroup(MSN::NotificationServerConnection * conn, bool added, std::string groupName, std::string groupID)
- {}
- void Callbacks::removedGroup(MSN::NotificationServerConnection * conn, bool removed, std::string groupID)
- {}
- void Callbacks::renamedGroup(MSN::NotificationServerConnection * conn, bool renamed, std::string newGroupName, std::string groupID)
- {}
- void Callbacks::showError(MSN::Connection * conn, std::string msg)
- {}
- void Callbacks::buddyChangedStatus(MSN::NotificationServerConnection * conn, MSN::Passport buddy, std::string friendlyname, MSN::BuddyStatus status, unsigned int clientID, std::string msnobject)
- {}
- void Callbacks::buddyOffline(MSN::NotificationServerConnection * conn, MSN::Passport buddy)
- {}
- void Callbacks::gotSwitchboard(MSN::SwitchboardServerConnection * conn, const void * tag)
- {}
- void Callbacks::buddyJoinedConversation(MSN::SwitchboardServerConnection * conn, MSN::Passport username, std::string friendlyname, int is_initial)
- {}
- void Callbacks::buddyLeftConversation(MSN::SwitchboardServerConnection * conn, MSN::Passport username)
- {}
- void Callbacks::gotInstantMessage(MSN::SwitchboardServerConnection * conn, MSN::Passport username, std::string friendlyname, MSN::Message * msg)
- {}
- void Callbacks::gotEmoticonNotification(MSN::SwitchboardServerConnection * conn, MSN::Passport username, std::string alias, std::string msnobject)
- {}
- void Callbacks::failedSendingMessage(MSN::Connection * conn)
- {}
- void Callbacks::buddyTyping(MSN::SwitchboardServerConnection * conn, MSN::Passport username, std::string friendlyname)
- {}
- void Callbacks::gotNudge(MSN::SwitchboardServerConnection * conn, MSN::Passport username)
- {}
- void Callbacks::gotVoiceClipNotification(MSN::SwitchboardServerConnection * conn, MSN::Passport username, std::string msnobject)
- {}
- void Callbacks::gotWinkNotification(MSN::SwitchboardServerConnection * conn, MSN::Passport username, std::string msnobject)
- {}
- void Callbacks::gotInk(MSN::SwitchboardServerConnection * conn, MSN::Passport username, std::string image)
- {}
- void Callbacks::gotContactDisplayPicture(MSN::SwitchboardServerConnection * conn, MSN::Passport passport, std::string filename )
- {}
- void Callbacks::gotActionMessage(MSN::SwitchboardServerConnection * conn, MSN::Passport username, std::string message)
- {}
- void Callbacks::gotInitialEmailNotification(MSN::NotificationServerConnection * conn, int msgs_inbox, int unread_inbox, int msgs_folders, int unread_folders)
- {}
- void Callbacks::gotNewEmailNotification(MSN::NotificationServerConnection * conn, std::string from, std::string subject)
- {}
- void Callbacks::fileTransferInviteResponse(MSN::SwitchboardServerConnection * conn, unsigned int sessionID, bool response)
- {}
- void Callbacks::fileTransferProgress(MSN::SwitchboardServerConnection * conn, unsigned int sessionID, unsigned long long transferred, unsigned long long total)
- {}
- void Callbacks::fileTransferFailed(MSN::SwitchboardServerConnection * conn, unsigned int sessionID, MSN::fileTransferError error)
- {}
- void Callbacks::fileTransferSucceeded(MSN::SwitchboardServerConnection * conn, unsigned int sessionID)
- {}
- void Callbacks::gotNewConnection(MSN::Connection * conn)
- {
- printf("phoque");
- if (dynamic_cast<MSN::NotificationServerConnection *>(conn))
- dynamic_cast<MSN::NotificationServerConnection *>(conn)->synchronizeContactList();
- }
- void Callbacks::buddyChangedPersonalInfo(MSN::NotificationServerConnection * conn, MSN::Passport fromPassport, MSN::personalInfo pInfo)
- {}
- void Callbacks::closingConnection(MSN::Connection * conn)
- {}
- void Callbacks::changedStatus(MSN::NotificationServerConnection * conn, MSN::BuddyStatus state)
- {}
- void * Callbacks::connectToServer(std::string hostname, int port, bool *connected, bool isSSL)
- {}
- int Callbacks::listenOnPort(int port)
- {}
- std::string Callbacks::getOurIP(void)
- {}
- void Callbacks::log(int i, const char *s)
- {}
- std::string Callbacks::getSecureHTTPProxy()
- {}
- void Callbacks::gotMessageSentACK(MSN::SwitchboardServerConnection * conn, int trID)
- {}
- void Callbacks::askFileTransfer(MSN::SwitchboardServerConnection * conn, MSN::fileTransferInvite ft)
- {}
- void Callbacks::addedContactToGroup(MSN::NotificationServerConnection * conn, bool added, std::string groupId, std::string contactId)
- {}
- void Callbacks::removedContactFromGroup(MSN::NotificationServerConnection * conn, bool removed, std::string groupId, std::string contactId)
- {}
- void Callbacks::addedContactToAddressBook(MSN::NotificationServerConnection * conn, bool added, std::string passport, std::string displayName, std::string guid)
- {}
- void Callbacks::removedContactFromAddressBook(MSN::NotificationServerConnection * conn, bool removed, std::string contactId, std::string passport)
- {}
- void Callbacks::enabledContactOnAddressBook(MSN::NotificationServerConnection * conn, bool enabled, std::string contactId, std::string passport)
- {}
- void Callbacks::disabledContactOnAddressBook(MSN::NotificationServerConnection * conn, bool disabled, std::string contactId)
- {}
- size_t Callbacks::getDataFromSocket (void *sock, char *data, size_t size)
- {}
- size_t Callbacks::writeDataToSocket (void *sock, char *data, size_t size)
- {}
- void Callbacks::gotVoiceClipFile(MSN::SwitchboardServerConnection * conn, unsigned int sessionID, std::string file)
- {}
- void Callbacks::gotEmoticonFile(MSN::SwitchboardServerConnection * conn, unsigned int sessionID, std::string alias, std::string file)
- {}
- void Callbacks::gotWinkFile(MSN::SwitchboardServerConnection * conn, unsigned int sessionID, std::string file)
- {}
- void Callbacks::gotInboxUrl(MSN::NotificationServerConnection *conn, MSN::hotmailInfo info)
- {}
Add Comment
Please, Sign In to add comment