aboutsummaryrefslogtreecommitdiff
path: root/src/server.cpp (follow)
AgeCommit message (Collapse)Author
2010-06-14Fixed a minor memory leak in the server. It makes a difference on popularMike Buland
servers that run for weeks or more.
2010-05-13Finally rearranged the system to put all compatability files in a directoryMike Buland
called compat. I've updated the linux and windows builds and it looks pretty good. I also added a config.h file which we have to edit by hand until I can work on build some more. Linux File operations now use 64 bit mode, windows can't, or at least, I don't feel like researching it right now.
2010-05-13Hmmm, apparently there was a corner case that would cause a disconnect toMike Buland
crater the server system. Lameness...
2010-04-12Wow Myriad!!Mike Buland
Myriad seems to work. I have to run it through a few more paces, and there are some known corner cases that I may just disallow, such as too-small block sizes. Beyond a little more testing, it's ready for production. I may switch some of my cache tests to using it now.
2010-03-12The server and multiserver now support a shutdown() function which callsMike Buland
onCloseConnection on each client before cleaning it up, allowing for smooth cleanup. Later we may want to add a nicer version with a timeout for pending data to be transmitted and the like. This one is pretty harsh.
2010-02-13Added and updated the license info in all the source files, they still saidMike Buland
copyright 2007-2008.
2010-01-07A bunch of things weren't including their own files in quite the correct way...Mike Buland
2009-11-12I've started my campaign to clean up all of the header files in libbu++ as farMike Buland
as includes go. This required a little bit of reworking as far as archive goes, but I've been planning on changing it aronud for a bit anyway. The final result here is that you may need to add some more includes in your own code, libbu++ doesn't include as many random things you didn't ask for anymore, most of these seem to be bu/hash.h, unistd.h, and time.h. Also, any Archive functions and operators should use ArchiveBase when they can instead of Archive, archivebase.h is a much lighterweight include that will be used everywhere in core that it can be, there are a few classes that actually want a specific archiver to be used, they will use it (such as the nids storage class). So far, except for adding header files, nothing has changed in functionality, and no other code changes should be required, although the above mentioned archive changeover is reccomended.
2009-07-29Wow, socket, as it turned out, was not able to close after the remote endMike Buland
disconnected. It now automatically closes down the local end when the remote end dies.
2009-01-11A new feature has been added to Bu::Server. It's going to be trickier toMike Buland
implement in Bu::ItoServer, but I'll get to it. Basically you can trigger a "tick" any time you want and it will propegate as an onTick event to all active clients. You can also have these generated automatically everytime the system passes through a polling cycle. In this case, you should never ever write data to the socket every tick. It will cause your program to go bursurk.
2009-01-09Hey, that's better. The server now idles the same, but sends data uber-fast!Mike Buland
2008-12-24Strange, I never actually made any of the server code clean up behind itselfMike Buland
in the deconstructors. When you deleted a server it wouldn't close it's sockets. We never noticed because servers normally last the entire lifetime of the program they're in.
2008-02-10Huh, forgot to commit the rest of the updates/changes/etc for the newMike Buland
sever/client-link system.
2008-02-07Just updated the copyright date.Mike Buland
2008-02-07Wowee, I think all this new stuff works, Conduit I don't need now, so it's notMike Buland
done yet. The Client class now supports a function called getLink() which returns a ClientLink object. This object may then be passed off to any other class and called to send messages to that client object. It is threadsafe if ItoServer is being used, and not for Server. Sending a message via a ClientLink calls the onMessage function on the assosiated protocol. Note that sending messages from within protocol event handlers or functions they call, while safe, may be slow and it's reccomended that you avoid this.
2007-11-15Added liscense info at the front of many, many files. Debating the old files.Mike Buland
2007-10-04Discovered that the Bu::Client::disconnect() function didn't do anything. ThatMike Buland
has been fixed, it now safely disconnects after emptying the Client's outgoing buffer. Added some more helpers to Bu::FString. Added the beginings of ProtocolHttp using a new method for processing protocols that's based more strongly on an NFA state machine, this makes sense, but I never had the desire to actually try implementing it before. It's working pretty well.
2007-07-18Incorporated a patch contributed by Brandon CS Sanders that allows libbu++ toMike Buland
compile under OSX. So far, no problems with anything else, it looks like build and nango both build without problems, libbu++ is truly becoming a full cross- platform toolkit.
2007-06-18The client/server system now works both ways, in and out, and works as well asMike Buland
the old one in pretty much every way, and better in most. It's much easier to understand. And the atom class is better.
2007-06-18Added the protocol class. servers work, but don't send data, updated the streamsMike Buland
to include many more state indicators and caps queries, and everything is working better in general.
2007-06-12Moved out the xml system again. I think that if I am going to do it again,Mike Buland
I'm going to do it over from scratch, that was just painful. Also, started in again on the server system, it's looking pretty good, already got connections working, next up is managing data flow through clients and protocols!
2007-05-17Lots of cool new stuff, the Server class actually works for everything exceptMike Buland
actually interacting with clients, and the Client class is almost there, except that it doesn't really do anything yet.