Custom Patcher / Updater / Installer

Page 1 of 3 123 LastLast
Results 1 to 15 of 44
  1. #1
    Apprentice davies142 is offline
    MemberRank
    Jun 2009 Join Date
    Budapest, HUNLocation
    23Posts

    config Custom Patcher / Updater / Installer

    Hi everybody!

    A long time ago I wrote a custom program in C++ for Perfect World.

    Shortly: can update any clients without using compressions and manage clients on the fly with bundled secure webserver and sqlite database.

    Only have two parts: server and the client.
    Platform independent source, using GNU.


    Server can do a following:

    - Recursive scan a specified folder and indexing all files by size and mtime.
    - Have webadmin over SSL (optional):
    - Stop update, proxy servers
    - Maintance mode (means: just a specified users can join into server any others gets a customized-error message)

    - User management:
    - Custom banning system by hardware fingerprint

    - Lightweight code, blocking I/O with thread-pool memory management.
    - Safe UP to 1024 concurent TCP connection.
    - Uses streams.
    - Secured transferring with 1byte-crc calculate.
    - D.o.S. / D.D.o.S. / Flood protection.

    So it can send client files natively, like any client structure server's folder have userdata directory and any PCK files and so on. It checks for any filesystem change under directory and rehash the index, all client will download a most fresh files, except install only files like userdata.

    So just need a clean Perfect World client on the server.

    Client can do a following:

    - Connect to the server
    - Download file indexes
    - Check any differnce between server/client files.
    - Update / download if needs.
    - Launch a crypted tunnel and binding on localhost.
    - The game will connect to the client and the client create a tunnel with the server, server can check user.
    - Create shortcut to the Desktop
    - GUI Interface with bitmap background, looks good.
    - 3 buttons, start game (if no update in progress), Forum, Website.
    - Actually I using this patcher as installer too it can do.

    And so other feature.

    I has built in a "all-in-one" built in file.
    So the client just a one .exe file, with bundled virtual filesystem.

    Server have 2 files, PE binary (*nix) and the config also have builtin vfs and the database file will created after first run.

    So It possible to share it, but Of'Corse in limited feature, like a simple real-time patcher.

    So it only have a simple webadmin and update server feature with customizable client, without database and the secured tunnel.

    If I share it, I have to make a client with external files, like BMPs and the configure file.

    I can share only the binary files, because its licensed and closed source by me :)


    client .exe file size with UPX 2MB and its cost 5-6MB of RAM.
    Server also lightweight, but its hardly depend on concurrent-threads. Measured maximum RAM: 35MB, with 800 concurrent thread and active I/O.


    Who wants it?

    Last edited by davies142; 09-04-11 at 01:31 AM.


  2. #2
    Black Magic Development das7002 is offline
    MemberRank
    Apr 2010 Join Date
    EarthLocation
    2,188Posts

    Re: Custom Patcher / Updater / Installer

    Quote Originally Posted by davies142 View Post
    Platform independent source, using GNU.
    Quote Originally Posted by davies142 View Post
    I can share only the binary files, because its licensed and closed source by me :)
    Quite a contradiction you have there...

    And we here are very skeptical of non opensource software... lotsa people try to push malware... (not saying you are one of these people but it is possible)

  3. #3
    SON OF MARFEL hrace009 is offline
    MemberRank
    Apr 2009 Join Date
    Pekanbaru, IndoLocation
    1,035Posts

    Re: Custom Patcher / Updater / Installer

    Quote Originally Posted by das7002 View Post
    Quite a contradiction you have there...

    And we here are very skeptical of non opensource software... lotsa people try to push malware... (not saying you are one of these people but it is possible)
    i think he is don't know what GNU meaning

    and that mean's he doen't know anything
    Last edited by hrace009; 09-04-11 at 11:29 AM.

  4. #4
    Apprentice davies142 is offline
    MemberRank
    Jun 2009 Join Date
    Budapest, HUNLocation
    23Posts

    Re: Custom Patcher / Updater / Installer

    This software has build by GNUs, not any stupid MS product like Visual C++

    It have a lot of OpenSource utils for example: openssl, sqlite3, etc.

    I wrote a complex own library which not public at all.
    Contains: TCP_Server, TCP_Client, Tunnel, sqlite3 C++ API, some kernel virtualizations, lot of other stuffs and algos which isnt public, because: some protocol and algorythm used to any other application by me and they aren't free.

    A question was very simple: Who wants it?

    I not necessary to recompile and modify my own working patcher, to use any other people who wants it.

    Therefore this only an opportunity

    ---------- Post added at 12:12 PM ---------- Previous post was at 12:02 PM ----------

    "i think he is don't know what GNU meaning
    and that mean's he doen't know anything"

    BTW, Iam not a stupid kid, I wrote something not coping some files into a single rar and released it like someone ...

    Dude I dont said my app is GNU, I just said it compilled by.. and contain GNU softwares.


    P.S.
    My apps don't have any malware, spyware, adware, trojan-horse or any other viral-code.

    Sniff it, Spy it if you dont think so.
    Last edited by davies142; 09-04-11 at 02:05 PM.

  5. #5
    Nerd-IO Romulan is offline
    MemberRank
    Feb 2009 Join Date
    BelgiumLocation
    3,333Posts

    Re: Custom Patcher / Updater / Installer

    Q: Who want it?
    A: Me for test

  6. #6
    Apprentice davies142 is offline
    MemberRank
    Jun 2009 Join Date
    Budapest, HUNLocation
    23Posts

    Re: Custom Patcher / Updater / Installer

    I have to rewrite the code, it means if someone is really needs it I can release it at the middle of next week.

  7. #7
    Nerd-IO Romulan is offline
    MemberRank
    Feb 2009 Join Date
    BelgiumLocation
    3,333Posts

    Re: Custom Patcher / Updater / Installer

    I'm still searching after a good alternative to the CPW patching system of PW.

  8. #8
    Apprentice davies142 is offline
    MemberRank
    Jun 2009 Join Date
    Budapest, HUNLocation
    23Posts

    Re: Custom Patcher / Updater / Installer

    If you can wait 3 days, you will be the first person who have my custom patcher, I will posts some technical details later, Iam currently testing, because I rewritten the code and some functions not working well (yet) (tunnel could not capture the login packet), btw an older version works on 100% since more than one year. :)

    ---------- Post added at 12:52 PM ---------- Previous post was at 12:39 PM ----------

    Here is the server's config file:

    Code:
    update
    {
    
    # Log Level Settings
    # example:
    # log_level none,all,trace,debug,info,warning,error
    	log_level = info
    
    #Loging to file
    # example:
    # log_file = logs/sql.log
    	log_file = logs/update_server.log
    
    # log_buffer in msec
    	log_buffer = 2000
    
    # Client Path
    	client_path = /PWGameGuard/client
    
    # update port
    	port = 29003
    
    # maximum_connections is a global variable which limiting server
    	maximum_connections = 200
    
    # maximum_connect_perip is a maximum connection limiting per IP
    	maximum_connect_perip = 20
    	
    # Read Timeout in millisecond
    	read_timeout = 5000
    
    # Write Timeout in millisecond
    	write_timeout = 5000
    
    }

  9. #9
    Member Jonatas is offline
    MemberRank
    Feb 2011 Join Date
    55Posts

    Re: Custom Patcher / Updater / Installer

    Yes I am interested, as it will make a list of files that we already have? Or will they release a client and it can only read the new update?

  10. #10
    Apprentice davies142 is offline
    MemberRank
    Jun 2009 Join Date
    Budapest, HUNLocation
    23Posts

    Re: Custom Patcher / Updater / Installer

    Server create a list of client files and dirs on the server.
    And the client (patcher) will query the list and associate with current files, then If found a difference it will download the latest one.

    You dont have to increase any number, or create a custom archives, it will automatically download them if client is out-of-date.

    If you modify the client files on the server, like a new gshop.data.
    Simply restart the update server and it rehash again. But this time all active update progress(clients) are disconnect, but there isnt any problem because clients are trying to reconnect continously until update server starts then the clients do again everything, but only a different files will updated.

    Protocol has own CRC checking method like torrent, no files be corrupted, but if you kill the server any clients loose the actual file.

    So if you have downloaded 50% of models.pck, when the server killed you have to download whole file.

    So this patcher syncs server files with client.
    If everything is up to date, a patcher scan your files fast aprox. less than 10second.

  11. #11
    Member Jonatas is offline
    MemberRank
    Feb 2011 Join Date
    55Posts

    Re: Custom Patcher / Updater / Installer

    The files on the server side functions as the PW's? Example, we have to send uncompressed files to the server in the case for him to make a list, the server scans this list. This will serve to check a file? Or just add new files to the server and it updates? These files will be in folders separas? Patch 1 Patch 2 = = folder1 folder or two everything will be in the same folder?

    From what I understand the User can stop the upgrade at any time and start where you left off?

  12. #12
    Apprentice davies142 is offline
    MemberRank
    Jun 2009 Join Date
    Budapest, HUNLocation
    23Posts

    Re: Custom Patcher / Updater / Installer

    This updater syncing the server's files to client's files so it means:
    You must have one directory which it contains a full 'playable' game on the server side, on the client side a patcher will update if it necessary.

    If user stop updating, it can be continue from the last fully downloaded file and only download any file If it differ than the server's one.
    Last edited by davies142; 09-04-11 at 04:29 PM.

  13. #13
    Member Jonatas is offline
    MemberRank
    Feb 2011 Join Date
    55Posts

    Re: Custom Patcher / Updater / Installer

    Then the server side we have a arquivo.pck compressed? If so, I think our community prefers uncompressed files and patch the client to insert in pck, as well as the patcher ronny does, the problem is that it has no control of files and can not pause. Imagine having to send the 1gb models.pck any update?

    I would be interested to limit the download rate on a great upgrade 10 users every band could pull for them.

    Sorry if I'm being annoying with all questions and suggestions.

  14. #14
    Apprentice davies142 is offline
    MemberRank
    Jun 2009 Join Date
    Budapest, HUNLocation
    23Posts

    Re: Custom Patcher / Updater / Installer

    Actually this updater can not handle .pck files, so yes it sends whole 1GB models.pck

    But I thinking about that thing how can I handle many uncompressed files into clients's PCKs, but I dont know how PCKs are compressed, btw I think they are pure packed files with zlib and without the huffman alogrythm.

    I dont have any free time for it, but If someone can share the spck.exe's source may I can rewrite my patcher to handle .pcks with wide coded charset.

    But if you want manage uncompressed .pcks files, like uncompressed models.pck have much file as you need a strong server, because patcher must code every filename(coz: BIG5), and may necessary compress every file.

    This method can extremely slow down your update progress.


    Bandwidth shaping/limiting not implemented yet, but not impossible to integrate it.
    Last edited by davies142; 09-04-11 at 04:57 PM.

  15. #15
    Member Jonatas is offline
    MemberRank
    Feb 2011 Join Date
    55Posts

    Re: Custom Patcher / Updater / Installer

    spck.exe

    http://forum.ragezone.com/f452/spck-...tility-675051/

    sPCK.exe-c "% path% \ building.pck.files"
    sPCK.exe-c "% path% \ configs.pck.files"
    sPCK.exe-c "% path% \ facedata.pck.files"
    sPCK.exe-c "% path% \ fonts.pck.files"
    sPCK.exe-c "% path% \ gfx.pck.files"
    sPCK.exe-c "% path% \ grasses.pck.files"
    sPCK.exe-c "% path% \ interfaces.pck.files"
    sPCK.exe-c "% path% \ litmodels.pck.files"
    sPCK.exe-c "% path% \ loddata.pck.files"
    sPCK.exe-c "% path% \ models.pck.files"
    sPCK.exe-c "% path% \ sfx.pck.files"
    sPCK.exe-c "% path% \ shaders.pck.files"
    sPCK.exe-c "% path% \ surfaces.pck.files"
    sPCK.exe-c "% path% \ textures.pck.files"
    sPCK.exe-c "% path% \ trees.pck.files"

    If you use it SPCK code is made ​​free by ronny:

    stools - Revision 24: /trunk/sPCK

    and the spatch:

    stools - Revision 24: /trunk/sPATCH

    The spatch he takes a zipped file and extract updates. pck

    ---------- Post added at 03:46 PM ---------- Previous post was at 03:43 PM ----------

    One way that could be in your patch would indicate a file version and the folder for that version. The SQL would keep the folder and file names + size. So making the review of files simplest way possible. Download the files to a temporary folder and compressed in. Pck!



Page 1 of 3 123 LastLast

Advertisement